在这样结构的 HTML 中获取我想要的特定元素的正确选择器字符串是什么?
What is the correct selector string to get the particular elements I want in HTML structured like this?
<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>
它与 select 或(querySelectorAll 函数中的字符串参数)
配合使用效果很好
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);
}
下面是我迄今为止尝试过的 select 的列表。
#navFieldset input // this works fine
legend > input // ERROR
#navFieldset > input // this works fine
fieldset > input // this works fine
fieldset#navFieldset // ERROR
我需要 select 字段集中的所有按钮。
我想知道在显示为 this woks fine
的情况下,那些特定的 select 是否有任何区别。此外,为什么显示为 ERROR
的情况是错误的。我想知道原因。我正在阅读此 resource.
中的 CSS 选择器
工作select或
是的,那些 select 都是不同的,但是 select 是正确的。 redundancy/flexibility 对于 CSS select 或出现略有不同的标记时是必需的。
Non-working select或
legend > input
不起作用,因为 legend
不是 input
的 parent。那些是兄弟姐妹。您可以使用 legend ~ input
.
fieldset#navFieldset
select是fieldset
,不过你似乎对input
children感兴趣。您可以像使用后代 select 或 </code> 一样使用 child select 或 <code>>
: fieldset#navFieldset > input
(space): fieldset#navFieldset 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>
它与 select 或(querySelectorAll 函数中的字符串参数)
配合使用效果很好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);
}
下面是我迄今为止尝试过的 select 的列表。
#navFieldset input // this works fine
legend > input // ERROR
#navFieldset > input // this works fine
fieldset > input // this works fine
fieldset#navFieldset // ERROR
我需要 select 字段集中的所有按钮。
我想知道在显示为 this woks fine
的情况下,那些特定的 select 是否有任何区别。此外,为什么显示为 ERROR
的情况是错误的。我想知道原因。我正在阅读此 resource.
工作select或
是的,那些 select 都是不同的,但是 select 是正确的。 redundancy/flexibility 对于 CSS select 或出现略有不同的标记时是必需的。
Non-working select或
legend > input
不起作用,因为 legend
不是 input
的 parent。那些是兄弟姐妹。您可以使用 legend ~ input
.
fieldset#navFieldset
select是fieldset
,不过你似乎对input
children感兴趣。您可以像使用后代 select 或 </code> 一样使用 child select 或 <code>>
: fieldset#navFieldset > input
(space): fieldset#navFieldset input
.