问题标签 [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.
javascript - 在纯 JS 中循环整个 DOM 的最快速、安全和正确的方法是什么?
安全我的意思是 NodeList 创建的事实document.getElementsById('*');
是一个活动对象。当 JS 引擎循环通过它时,会动态添加或删除一些元素。
我打算做的事情是遍历整个 DOM(这将在一个greasemonkey 脚本中,因此不适用于正常的网络使用,但我认为它也适用于那里),检查节点 CSS 是否匹配某些规则并根据该更改的CSS。
这个过程需要一些时间,并且由于网站上有多个脚本(更改图像/新闻故事等)在其上运行,因此迟早会不断添加和删除 DOM 节点,有时节点会在处理时立即消失。
快速我的意思是递归地做它更好:
(但这会浪费时间检查nodeType)或for
循环:
(但这最终会遇到问题,它会遇到 NodeList 的波动提示)
java - DOM getElementsByTagName() 返回具有 NULL 值的节点
我有一个如下的 XML 文件。
当我使用 时getElementsByTagName("LEVEL2_ID")
,我确实得到了一个NodeList
with Nodes
,但是这些节点具有 NULL 值(换句话说,getNodeValue()
每个结果节点上都会返回NULL
)。为什么是这样?在这种情况下,我需要获取每个节点的内容值2000
。
XML:
在 Java 中,打印使用getElementsByTagName()获得的第一个节点的值返回NULL:
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 处理器)。
javascript - 通过 [] 对 NodeList 进行索引是否可靠且(理想情况下)已记录在案?
是否索引到NodeList
使用[]
而不是item()
完全可靠的跨浏览器,并且(单独)它是否记录在任何地方?例如:
NodeList
据我所知,接口的最新定义在 DOM3中,而 JavaScript 绑定的最新文档在DOM2 版本中。我没有看到任何关于索引NodeList
s via 的内容[]
,但我看到人们一直在这样做(我自己也经常这样做,但总是有点紧张)。
因此,我在包括 IE6 在内的一系列浏览器上进行了尝试,并且在我尝试过的所有浏览器中都表现出色(IE6、IE9、Chrome 16、Firefox 10、Firefox 5、Opera 11、Safari 5、Konqueror 4.7、Epiphany 3.0、Midori 0.4)。这很好,除了我周围没有几十个边缘案例浏览器。
因此,我正在寻找以前曾走过这条路的任何人的意见。它是完全可靠的跨浏览器吗?理想情况下它是否记录在任何地方?
javascript - JavaScript:无法访问 nodeList 的一次迭代的 childNode
鉴于此标记:
这个功能:
我的期望是每个锚的类都发生了变化,但是,当函数运行时,我得到:
当我使用:
代替上面的代码,列表项的类名按预期更改。
如上函数所示,如何通过循环访问 childNode 的 childNode?
谢谢你。
dojo - Dojo 节点列表遍历错误
我在使用 Dojo 的 Nodelist-traverse 方法时遇到了问题。我正在使用 Dojo 1.4.3(CMS 要求,目前无法升级),我开始使用:
我在 require 调用中没有收到任何错误,但我无法使用任何方法而不会出现错误。
引发错误:
我通过所有方法得到了这一点:父母(),孩子(),兄弟(),文档页面上列出的每一个:http: //dojotoolkit.org/reference-guide/dojo/NodeList-traverse.html#dojo -nodelist-traverse
我的目标是向父锚标记添加一个类,但我什至无法加载方法。不知道我做错了什么。提前感谢所有输入。
java - 将节点添加到节点列表
我的目标是不要立即将节点添加到 NodeList 中,而是在每次迭代中将它们添加到循环中。我查找了 NodeList 的类和方法,但没有找到任何有用的东西。无论如何要这样做还是我应该使用其他接口?要做类似下面的事情,但 NodeList 界面没有“添加”方法。那么我该如何添加项目?
java - 节点列表的实现
我NodeList
是这样实现的:
我必须这样做,因为我需要方法reverse
- 修改NodeList
.
我的问题是:什么时候使用evaluate
功能-Object result = xpath.evaluate(expression, source,
XPathConstants.NODESET);
我想在实现时设置source
参数。可以将 设置为when
是 的对象吗?我做了这样的事情,但我认为这对.item
MyNodeList
sourcec
myNodeAfterProbExp.item(indexOfNode)
myNodeAfterProbExp
MyNodeList
evaluate
提前致谢。
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
...
那么我哪里出错了?
它出什么问题了 ?
谢谢大家,杰克
javascript - 为什么 JavaScript 的 getElementsByClassName 提供的对象不是数组?
我试图在 JavaScript(不使用 jQuery)中获取页面上具有特定类名的所有元素的列表。因此,我使用 getElementsByClassName() 函数如下:
请注意,我的页面上有三个锚元素,其类为“expand”。这个 console.log() 输出
接下来,为了好玩,我将 expand_buttons 放入它自己的数组中,如下所示:
这突然输出
我可以点击节点列表并查看页面上三个“展开”锚元素的属性。还值得注意的是,我能够让我的代码在w3schools 测试页面中运行。
还可能值得注意的是,我对 document.getElementsByName 的使用实际上确实输出(到控制台)一个元素数组,但是当我询问它的长度时,它告诉我 0。同样,如果我尝试使用访问数组元素array_name[0]
像往常一样,它输出“未定义”,尽管当我将对象打印到控制台时,数组中显然有一个元素。
有人知道为什么会这样吗?我只想循环遍历 DOM 元素,目前我正在避免使用 jQuery,因为我正在尝试使用 vanilla JavaScript 进行编码。
谢谢,
典范RG