关于getElementByClassName遍历问题
HTMLCollection与NodeList
HTMLCollection的集合和NodeList对象一样也是动态的,他们获取的都是节点或元素集合的一个引用。
HTMLCollection和NodeList的实时性非常有用,但是,我们有时要迭代一个NodeList或HTMLCollection对象的时候,我们通常会选择生成当前对象的一个快照或静态副本:
转换为数组类型:
var staticLists = Array.prototype.slice.call(nodeListorHtmlCollection, 0)
这样的话,我们就可以放心的对当前的DOM集合做一些删减和插入操作,这个在DOM密集操作的时候很有用。
也就是说当我们使用getElementsByClass时获取的是一个动态Collection。当我们改变当前className时会改变这个Collection的结构,后一个元素会往前移,所以迭代时会出现跳过的问题。解决办法一般就是生成一个静态快照。
input为submit时要进行其他验证
标签中onclick要加上return 返回值
<input class="btn" type="submit" value="Save" onclick="return submitForm()"/>
js代码方法返回true or false.
function submitForm() {
if(isSelected){
return true;
}
alert("select the correct option");
return false;
}
网友评论