JS注意事项以及问题

2017-07-27  本文已影响13人  stutterr

关于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;
}

JavaScript 的 (+) 操作符会把字符串转换成数字

上一篇 下一篇

猜你喜欢

热点阅读