问题标签 [nodelist]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
169 浏览

javascript - 在纯 JS 中循环整个 DOM 的最快速、安全和正确的方法是什么?

安全我的意思是 NodeList 创建的事实document.getElementsById('*');是一个活动对象。当 JS 引擎循环通过它时,会动态添加或删除一些元素。

我打算做的事情是遍历整个 DOM(这将在一个greasemonkey 脚本中,因此不适用于正常的网络使用,但我认为它也适用于那里),检查节点 CSS 是否匹配某些规则并根据该更改的CSS。

这个过程需要一些时间,并且由于网站上有多个脚本(更改图像/新闻故事等)在其上运行,因此迟早会不断添加和删除 DOM 节点,有时节点会在处理时立即消失。

快速我的意思是递归地做它更好:

(但这会浪费时间检查nodeType)或for循环:

(但这最终会遇到问题,它会遇到 NodeList 的波动提示)

0 投票
2 回答
20157 浏览

java - DOM getElementsByTagName() 返回具有 NULL 值的节点

我有一个如下的 XML 文件。

当我使用 时getElementsByTagName("LEVEL2_ID"),我确实得到了一个NodeListwith Nodes,但是这些节点具有 NULL 值(换句话说,getNodeValue()每个结果节点上都会返回NULL)。为什么是这样?在这种情况下,我需要获取每个节点的内容值2000

XML:

在 Java 中,打印使用getElementsByTagName()获得的第一个节点的返回NULL

0 投票
3 回答
757 浏览

xml - 将 string-join 的结果类型转换为 NodeList

我需要处理评估 XPath 表达式的遗留代码,期望结果解析为 NodeList。该代码使用 NodeList 来确定 XPath 表达式选择了多少节点。The code proceeds only if one node is selected.

现在我需要使用返回类型为字符串的字符串连接函数。有没有办法使用另一个 XPath 函数将 String 转换为 NodeList?理想情况下,它将字符串转换为具有一个元素的节点列表,其中文本内容将是字符串值。我尝试使用 exsl:node-set() 但没有成功(Saxon-HE 处理器)。

0 投票
2 回答
96 浏览

javascript - 通过 [] 对 NodeList 进行索引是否可靠且(理想情况下)已记录在案?

是否索引到NodeList使用[]而不是item()完全可靠的跨浏览器,并且(单独)它是否记录在任何地方?例如:

NodeList据我所知,接口的最新定义在 DOM3中,而 JavaScript 绑定的最新文档在DOM2 版本中。我没有看到任何关于索引NodeLists via 的内容[],但我看到人们一直在这样做(我自己也经常这样做,但总是有点紧张)。

因此,我在包括 IE6 在内的一系列浏览器上进行了尝试,并且在我尝试过的所有浏览器中都表现出色(IE6、IE9、Chrome 16、Firefox 10、Firefox 5、Opera 11、Safari 5、Konqueror 4.7、Epiphany 3.0、Midori 0.4)。这很好,除了我周围没有几十个边缘案例浏览器。

因此,我正在寻找以前曾走过这条路的任何人的意见。它是完全可靠的跨浏览器吗?理想情况下它是否记录在任何地方?

0 投票
2 回答
2736 浏览

javascript - JavaScript:无法访问 nodeList 的一次迭代的 childNode

鉴于此标记:

这个功能:

我的期望是每个锚的类都发生了变化,但是,当函数运行时,我得到:

当我使用:

代替上面的代码,列表项的类名按预期更改。

如上函数所示,如何通过循环访问 childNode 的 childNode?

谢谢你。

0 投票
0 回答
183 浏览

dojo - Dojo 节点列表遍历错误

我在使用 Dojo 的 Nodelist-traverse 方法时遇到了问题。我正在使用 Dojo 1.4.3(CMS 要求,目前无法升级),我开始使用:

我在 require 调用中没有收到任何错误,但我无法使用任何方法而不会出现错误。

引发错误:

我通过所有方法得到了这一点:父母(),孩子(),兄弟(),文档页面上列出的每一个:http: //dojotoolkit.org/reference-guide/dojo/NodeList-traverse.html#dojo -nodelist-traverse

我的目标是向父锚标记添加一个类,但我什至无法加载方法。不知道我做错了什么。提前感谢所有输入。

0 投票
2 回答
22665 浏览

java - 将节点添加到节点列表

我的目标是不要立即将节点添加到 NodeList 中,而是在每次迭代中将它们添加到循环中。我查找了 NodeList 的类和方法,但没有找到任何有用的东西。无论如何要这样做还是我应该使用其他接口?要做类似下面的事情,但 NodeList 界面没有“添加”方法。那么我该如何添加项目?

0 投票
0 回答
1866 浏览

java - 节点列表的实现

NodeList是这样实现的:

我必须这样做,因为我需要方法reverse - 修改NodeList.

我的问题是:什么时候使用evaluate功能-Object result = xpath.evaluate(expression, source, XPathConstants.NODESET);

我想在实现时设置source参数。可以将 设置为when 是 的对象吗?我做了这样的事情,但我认为这对.itemMyNodeListsourcecmyNodeAfterProbExp.item(indexOfNode)myNodeAfterProbExpMyNodeListevaluate

提前致谢。

0 投票
1 回答
1184 浏览

java - getChildNodes() 在 XML 中为我的根返回 NULL

我的目标:在对象中获取 XML 的根Node,然后评估它!

我的问题 :

我正在尝试从 XML 文件的 ROOT 评估我的表达式,我有这个方法(我需要实现的是):

假设我已经打开了 XML Document,如下所示:

现在当我这样做时,里面 public Object evaluate(String expression, QName returnType);

Eclispe 在 "4" 行之后说:" DTMManagerDefault.getDTMHandleFromNode(Node) line: not available " 但是在 "3" 行中,Eclipse 生成了根的名称,即inventory...

那么我哪里出错了?

它出什么问题了 ?

谢谢大家,杰克

0 投票
2 回答
1894 浏览

javascript - 为什么 JavaScript 的 getElementsByClassName 提供的对象不是数组?

我试图在 JavaScript(不使用 jQuery)中获取页面上具有特定类名的所有元素的列表。因此,我使用 getElementsByClassName() 函数如下:

请注意,我的页面上有三个锚元素,其类为“expand”。这个 console.log() 输出

接下来,为了好玩,我将 expand_buttons 放入它自己的数组中,如下所示:

这突然输出

我可以点击节点列表并查看页面上三个“展开”锚元素的属性。还值得注意的是,我能够让我的代码在w3schools 测试页面中运行。

还可能值得注意的是,我对 document.getElementsByName 的使用实际上确实输出(到控制台)一个元素数组,但是当我询问它的长度时,它告诉我 0。同样,如果我尝试使用访问数组元素array_name[0]像往常一样,它输出“未定义”,尽管当我将对象打印到控制台时,数组中显然有一个元素。

有人知道为什么会这样吗?我只想循环遍历 DOM 元素,目前我正在避免使用 jQuery,因为我正在尝试使用 vanilla JavaScript 进行编码。

谢谢,

典范RG