Questions tagged «nodelist»

13
将JavaScript NodeList转换为数组的最快方法?
先前在这里回答的问题说这是最快的方法: //nl is a NodeList var arr = Array.prototype.slice.call(nl); 在我的浏览器上进行基准测试时,我发现它的速度比此速度慢3倍以上: var arr = []; for(var i = 0, n; n = nl[i]; ++i) arr.push(n); 它们都产生相同的输出,但是我很难相信我的第二个版本是最快的方法,特别是因为人们在这里另有说明。 这是我的浏览器中的一个怪胎(铬6)吗?还是有更快的方法? 编辑:对于任何关心的人,我都选择了以下内容(这似乎是我测试过的每个浏览器中最快的): //nl is a NodeList var l = []; // Will hold the array of Node's for(var i = 0, ll = nl.length; i …

12
[] .forEach.call()在JavaScript中做什么?
我看着一些代码片段,发现多个元素在节点列表上调用了一个函数,并将forEach应用于空数组。 例如,我有类似的东西: [].forEach.call( document.querySelectorAll('a'), function(el) { // whatever with the current node }); 但我不明白它是如何工作的。谁能解释一下forEach前面的空数组的行为以及其call工作原理?


2
NodeList何时处于活动状态,何时处于静态状态?
从MDN for NodeList: 在某些情况下,NodeList是一个实时集合,这意味着DOM中的更改会反映在集合中。例如,Node.childNodes处于活动状态: var parent = document.getElementById('parent'); var child_nodes = parent.childNodes; console.log(child_nodes.length); // let's assume "2" parent.appendChild(document.createElement('div')); console.log(child_nodes.length); // should output "3" 在其他情况下,NodeList是静态集合,这意味着DOM中的任何后续更改都不会影响集合的内容。document.querySelectorAll返回一个静态NodeList。 所以....有点烦!是否有中央参考说明哪些方法返回活动列表,哪些方法返回静态列表,而无需单独检查DOM API的所有各个部分?这里有工作规则吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.