- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在从 MDN 网络文档中学习 JavaScript。我在学习 Element.querySelector()
方法。
据说它返回第一个元素,该元素是调用它的元素的后代,该元素与指定的选择器组匹配。
但是有一个例子,它与这个事实相矛盾。
var baseElement = document.querySelector("p");
document.getElementById("output").innerHTML =
(baseElement.querySelector("div span").innerHTML);
<div>
<h5>Original content</h5>
<p>
inside paragraph
<span>inside span</span>
inside paragraph
</p>
</div>
<div>
<h5>Output</h5>
<div id="output"></div>
</div>
div
标签不是
p
的后代标记,此代码仍然有效。
最佳答案
Element.querySelector()
首先应用传递给 .querySelector()
的 CSS 选择器方法,整个文档和 不是基本元素 其中.querySelector()
被调用。这样做是为了生成初始的潜在元素集。
在生成初始潜在元素集后,潜在元素列表将被过滤以仅保留那些作为基本元素后代的元素。最后,返回此过滤列表中的第一个元素。
在您的代码示例中,首先在整个文档中搜索与 div span
匹配的元素。 .因为整个文档中只有一个元素匹配 div span
选择器,初始潜在元素集仅包含一个 span
元素。之后,这个span
检查元素以查看它是否是 baseElement
的后代.因为,在这种情况下,它是baseElement
,它被退回。
我上面解释的内容写在 MDN - Element.querySelector() 的“返回值”标题下
The entire hierarchy of elements isconsidered when matching, including those outside the set of elementsincluding baseElement and its descendants; in other words, selectorsis first applied to the whole document, not the baseElement, togenerate an initial list of potential elements. The resulting elementsare then examined to see if they are descendants of baseElement. Thefirst match of those remaining elements is returned by thequerySelector() method.
关于javascript - 在 mdn web docs Element.querySelector 方法说它应该是后代但示例显示否则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62873962/
这两种引用方法的主要区别是什么? 使用其中一种有什么好处?另外,它们各自最适合哪种用例? var selection = document.querySelector('.selector') !==
对于下面给出的代码,document.querySelector('createButton') 和 Polymer.dom(this.$).querySelector('createButton')
查看 mdn“querySelector”会在两个部分下弹出,但它们似乎都达到了相同的目的。哪一个是不同情况的理想选择? ...或者它们基本上在功能上是相同的? https://developer.m
这个问题已经有答案了: Is element.querySelector() different from document.querySelector()? (2 个回答) 已关闭 3 年前。 当我
我做了几次迭代测试来测试 Document.querySelector 的效率和 Element.querySelector . 标记: 脚本: 查询 Document.querySelec
如何使用 document.querySelectorAll() 从下面的代码中选择特定的文本输出? 我想在变量中捕获结果,并尝试使用以下代码来实现: let result = document.qu
HTML 2018-2019 如何使用 CSS 选择器定位元素 onclick 我试过下面的代码但不工作 ie.document.querySelector("[onclick='loadYearPa
通常在 javascript 中使用查询选择器时,我们会这样做, ABCD var className = 'abcd'; var x = document.querySelector('.'+cla
我目前正在学习 querySelector方法,惊讶地发现它被归类为过时了 这是 screenshot 的链接 querySelector 方法真的已经过时了吗?若有,原因为何?应该使用什么方法呢?
MDN 指定的 querySelectorALL() 不支持事件节点并且仅返回静态节点。 MDN querySelectorALL querySelector() 是否支持活节点 MDN 没有指定任何
这个问题在这里已经有了答案: What does this `…${…}…` code in the node docs mean? [duplicate] (1 个回答) 关闭 6 年前。 我是
根据下面的书面代码,当单击具有 keyCode 65 的“a”时,预期结果应该是在控制台中返回 DOM 元素“”。当我运行代码并检查它时,它在控制台中返回 null。 部分源码: wind
我正在使用 SVG.js select() 函数,它使用 querySelector() 函数。 目前,我使用的命令是:select("[id='1']")(1可以用其他数字代替) 我想做的是选择该元
我有这个循环应该设置 值为无并更新占位符。当我登录节点时它工作正常但是 value和 placeholder没有更新?怎么了? 数据是一个 JSON 对象。 var data = {"password
我正在尝试使用 QuerySelector 获取数据表单中每个评论的值。有一个“添加”按钮,允许显示另一个元素并将元素的名称增加 +1。例如,第一个评论的名称为“comment0”,第二个评论的名称为
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 7 年前。 Improv
我有一个具有以下格式类的输入字段: some_starting_constant_string somevariablestring some_ending_constant_string 所以我想要
我正在寻找一种方法来查找包含以给定字符串开头的属性的所有元素。例如: document.querySelectorAll('[ng-*]') 将返回带有 Angular 指令的所有元素(ng-clic
我的第一列应该是实际日期,但我的 js 脚本仅适用于我的 html 代码中的一个类。 问题:如何使我的js代码适用于html代码中的每个类,我使用querySelector(),但我应该使用类似$(t
有没有办法使用 CSS 选择器来选择出现在给定元素之后的元素。 假设我有一个像这样的 DOM A next span the target next span
我是一名优秀的程序员,十分优秀!