Javascript 什么是正确的选择器字符串,以获得我想要的HTML中的特定元素?
我需要选择字段集中的所有按钮。Javascript 什么是正确的选择器字符串,以获得我想要的HTML中的特定元素?,javascript,html,css-selectors,Javascript,Html,Css Selectors,我需要选择字段集中的所有按钮。 我想知道的是,在显示为这个炒锅的情况下,这些特定的选择器有什么区别吗。此外,为什么案例显示为错误。我想知道原因。我正在从中读取CSS选择器。正在使用选择器 是的,这些选择器都不同,但是选择正确的东西。当出现稍微不同的标记时,CSS选择器需要这种冗余/灵活性 非工作选择器 图例>输入不起作用,因为图例不是输入的父项。那些是兄弟姐妹。您可以使用图例~输入 fieldsetnavFieldset选择字段集,但您似乎对输入子项感兴趣。您可以使用子选择器>:fieldset
我想知道的是,在显示为这个炒锅的情况下,这些特定的选择器有什么区别吗。此外,为什么案例显示为错误。我想知道原因。我正在从中读取CSS选择器。正在使用选择器 是的,这些选择器都不同,但是选择正确的东西。当出现稍微不同的标记时,CSS选择器需要这种冗余/灵活性 非工作选择器 图例>输入不起作用,因为图例不是输入的父项。那些是兄弟姐妹。您可以使用图例~输入
fieldsetnavFieldset选择字段集,但您似乎对输入子项感兴趣。您可以使用子选择器>:fieldsetnavFieldset>输入,使用方式与使用子选择器空格:fieldsetnavFieldset输入相同。@Artjom B:我需要选择带有字段集的所有按钮。您可以很容易地从querySelectorAll函数中的String参数中识别出来。是的,如果缩进正确,则可以识别//工作注释和//不工作注释。现在我知道了,有什么问题吗?有一些选择器可以工作,那么问题到底是什么呢?@Artjom B:如果是这样,我将它们显示为未注释的,人们可能会认为它是在程序流程中。当您将所有这些选择器并排比较时,差异应该非常明显。例如,如果您的所有其他选择器都以输入结尾,那么是什么让您认为fieldsetnavFieldset会选择您的输入?我正在从本资源中读取CSS选择器。你从阅读中学到了什么?如果你甚至不打算对此发表评论,告诉我们你已经读过一些东西是没有用的。你可以使用fieldsetnavFieldset>input。。。或者其他任何一个已经被证明有效的选择器。我真傻,竟然把图例当作输入的父项
<body><form>
<fieldset>
<legend>Current Node Information</legend>
<label>Node Name: <input type="text" id="nodeNameField"></label><br>
<label>Node Type: <input type="text" id="nodeTypeField"></label><br>
<label>Node Value: <input type="text" id="nodeValueField"></label><br>
<label>Child Element Count: <input type="text" id="childElementCountField"></label>
</fieldset>
<fieldset id="navFieldset">
<legend>Movement Controls</legend>
<input type="button" value="Parent" data-prop="parentNode" id="parentBtn">
<input type="button" value="First Child" data-prop="firstChild" id="firstChildBtn">
<input type="button" value="Reset to Root" data-prop="root" id="rootBtn">
</fieldset>
</form></body>
window.onload = function () {
nodeMove.currentElement = document.documentElement;
var elements = document.querySelectorAll("fieldset#navFieldset input");
for (var i = 0, len = elements.length; i < len; i++) {
elements[i].onclick = function () { nodeMove(this) };
}
update(nodeMove.currentElement);
}
#navFieldset input // this works fine
legend > input // ERROR
#navFieldset > input // this works fine
fieldset > input // this works fine
fieldset#navFieldset // ERROR