- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这个话题我想了很久。有问题的方法如下:
getElementsByTagName
getElementsByClassName
getElementsByName
querySelectorAll
据我所知,这些 DOM 方法是唯一能够返回卡住或事件 NodeLists
的方法。对于其中一些方法,顺序由 W3C 规范 定义。例如,http://www.w3.org为 querySelectorAll
NodeLists
写入以下内容
The querySelectorAll() methods on the Document, DocumentFragment, and Element interfaces must return a NodeList containing all of the matching Element nodes within the subtrees of the context node, in document order. If there are no matching nodes, the method must return an empty NodeList.
但是,对于我提到的其他方法,我找不到类似的清晰规范。我的问题是:
绝对清楚:
<div>this</div>
<div>is</div>
<div>a demo</div>
// is this always guaranteed to be "<div>is</div>"
document.querySelectorAll('div')[1]
最佳答案
是的。所有这些都是按文档顺序/树顺序。
getElementsByName
( DOM Level-2-HTML ) 返回一个 NodeList
querySelectorAll
( Selectors API ) 返回“按文档顺序”的 NodeList
getElementsByTagName
( DOM ) 返回一个 HTMLCollection
getElementsByClassName
( DOM ) 返回一个 HTMLCollection
HTMLCollection
s和 NodeList
s都指定有
the elements are sorted in tree order.
当通过 indizes 访问它们时。
我认为所有浏览器都可靠地实现了这些规范(即使链接的版本可能比某些实现更新),主要是因为树顺序是最合乎逻辑且最易于编写代码的顺序。但是,您可能需要注意某些浏览器可能会返回由不同元素 组成的列表,因为它们的节点匹配不同。在确定元素的 name
时,我可能会想到一些怪癖。
关于javascript - 查询的 NodeLists 中的 "order"有多可靠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13102517/
如何从一个 NodeList 中删除另一个 NodeList?例如,如果我有: var all = document.querySelectorAll('*'); var divs = documen
我是 javascript 编程的新手,我想了解更多。当我单击同一 nodeList 中的任何节点时,我想从 nodeList 的每个节点中删除类名。 我写了这段代码: d = document.qu
我正在使用 jQuery 编写一个网站,并且尝试将表单发布到另一个 PHP 文件而不离开页面。然后我找到了一种使用 jQuery 发布表单的方法。但是,当我将数据发布到 PHPpage 时,出现此错误
在下面的代码摘录中,products是一个xml节点列表,其结构为: 1 item1 2 item2 xml = httpRequest.r
我通常听说是因为实时节点列表“不好”(see this Zakas article)并通知 querySelectorAll 返回静态 HTMLCollection 的决定。为什么人们认为实时 Nod
我正在使用 Vaadin,一个 Java 框架。 我处理 XML 内容,我想用这些信息制作一棵树,但我不知道 XML 内容会持续多久。我发送一个调用来获取 XML,但使用不同的 IP 地址。 我知道如
我有一份正在搜索特定实例的文档,但是这些实例是由用户指定的,并且有多个。除了 for 循环内的 for 循环根据数组搜索 Nodelist 之外,我是否缺少一种不会使系统陷入困境的方法?或者更简单的方
这个问题在这里已经有了答案: Why doesn't nodelist have forEach? (10 个回答) Looping through a nodelist JS (1 个回答) 3年前
我想从其中一个包含特定文本的父节点获取所有子节点。换句话说:我开始搜索某个子节点,我确信该子节点包含我需要的一些字符串。一旦找到它,我需要获取同一级别的其他节点,而不是从与相同 Xpath 表达式匹配
我有一个事件日历。我遇到的问题是每次将事件插入到特定日期时,我的其他事件 innerHTML 也会发生变化。 我已经尝试过 event.stopPropagation() 以及 event.stopI
nodeList 和arguments 只是“类似数组”的优点是什么? 最佳答案 参数 arguments 不是真正的数组是历史产物。尽管正如在另一个答案中指出的那样,它具有 callee 属性,并且
我正在寻找一种面向 future 的方法来遍历 NodeList(即来自 element.querySelectorAll(selector))以及跨浏览器兼容。以前我一直在使用 ES6 Spread
我正在写一篇关于 Java 性能的演示文稿,我正在尝试确定这是否是一种不好的做法。我是一个 c++ 的人,所以我还不知道关于 java 的一切。我没有 item() 的源代码,我需要一个快速的答案!
首先是:这不是问如何将 NodeList 变成数组。这是相反的。 为了保持一致性,我想创建一个返回 NodeList 的函数,就像 document.querySelectorAll() 一样。 这是
我的 html 页面上有 3 个 div,所有这些都被分配了一个类名“tagline”。我想通过 JavaScript 为每个 div 分配样式。但我认为 NodeList 对象不允许我这样做。她就是
我有使用 document.getElementsByTagName('p') 存在于页面中的标签. 我想要的是,在 nodeList 中添加这些标签,就像 document.querySelecto
我已经使用nodeList = document.createDocumentFragment().childNodes;创建了一个NodeList;, 然后我设置了 nodeList[0] = do
我有一个包含 3 个对象的数组对象。我想删除除第一个对象之外的所有对象。 这是我从 XML 中获得的数据: mrArr[0] = "Val" = "5"
注意:在假定此问题重复之前,此问题底部有一个部分说明了为什么一些类似的问题没有提供我正在寻找的答案。 我们都知道将 NodeList 转换为 Array 很容易,并且有很多方法可以做到这一点: [].
我在 javascript 中有一个代码并返回 [object NodeList] 我怎么能纠正这个 请帮我 function downloadDiv(filename, elemen
我是一名优秀的程序员,十分优秀!