NodeList v.s. HTMLCollection
DOM中的NodeList与HTMLCollection
饥人谷DOM
www.seostudying.com
seostudying.innerText
它得到的是
seostudying.innerHTML
它得到的是
seostudying.outerHTML
它得到的是包括
同时也得提醒一下大家,这3个属性都是IE专有的属性,而不是W3C的标准,因而一般的主流浏览器Firefox,Opera,Safari仅仅支持innerHTML,其它两个属性都不支持。建议你使用DOM来进行处理

20081124205003453.gif
childNodes 属性,它返回指定元素的子元素集合,包括HTML节点,所有属性,文本。可以通过nodeType来判断是哪种类型的节点,只有当nodeType==1时才是元素节点,2是属性节点,3是文本节点。
有时候需要获取指定元素的第一个HTML子节点(非属性/文本节点),最容易想到的就是firstChild 属性。代码中第一个HTML节点前如果有换行,空格,那么firstChild返回的就不是你想要的了。可以使用nodeType来判断下。
function getFirst(elem){ for(var i=0,e;e=elem.childNodes[i++];){ if(e.nodeType==1) return e;
}
}
children 属性**,它返回指定元素的子元素集合。它只返回HTML节点,甚至不返回文本节点。且在所有浏览器下表现惊人的一致。和childNodes 一样,在Firefox下不支持()取集合元素。因此如果想获取指定元素的第一个HTML节点,可以使用children[0]来替代上面的getFirst函数。需注意children在IE中包含注释节点。
老版本:
document.getElementById()
document.getElementsByClassName()
document.getElementsByName()
document.getElementsByTagName()
新增:
querySelector()
querySelectorAll()
elementFromPoint()
创建元素
createElement('div')
元素设置属性
node.setAttribute('id','id_value');
删除属性
node.removeAttribute('id')
var span = document.createElement('span')
添加元素
document.body.appendChild(span)
删除元素
document.body.removeChild(span)
element.classList有四种方法:
add( String [, String] )
添加指定的类值。如果这些类已经存在于元素的属性中,那么它们将被忽略。
remove( String [,String] )
删除指定的类值。
item ( Number )
按集合中的索引返回类值。
toggle ( String [, force] )
当只有一个参数时:切换 class value; 即如果类存在,则删除它并返回false,如果不存在,则添加它并返回true。
当存在第二个参数时:如果第二个参数的计算结果为true,则添加指定的类值,如果计算结果为false,则删除它
contains( String )
检查元素的类属性中是否存在指定的类值。
// div是具有class =“foo bar”的元素的对象引用 // 判断判断一个元素的 class 列表中是是否包含某个 class alert(div.classList.contains("foo")); // 删除class div.classList.remove("foo"); //添加class div.classList.add("anotherclass"); // 如果visible被设置则删除它,否则添加它 div.classList.toggle("visible"); // 添加/删除 visible,取决于测试条件,i小于10 div.classList.toggle("visible", i7.如何选中如下代码所有的li元素? 如何选中btn元素?
- list1
- list2
- list3
作者:饥人谷_米弥轮
链接:https://www.jianshu.com/p/263efcbb61dd
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1591/viewspace-2813747/ ,如需转载,请注明出处,否则将追究法律责任。