如何正确组合选择器和 JavaScript 标识符?
How to properly combine selectors with JavaScript identifiers?
我在 JavaScript 中 select 编辑了一个 DOM 元素。
var myParentElement = document.getElementById('myParentId');
现在,假设我想要使用 jQuery 到 select 第一个元素,即那个元素的 child,是一个可见的、启用的输入元素,并且有一个给定属性的特定值(这里我想检查元素的 name)。
$([name="myChildName"]).children(':input:enabled:visible:first'); // ?
上面的代码片段不正确,我该如何修正? (我知道一点CSS但不多jQuery)。
附加要求:本人限于jQuery1.7.2
编辑:抱歉,实际上比第一行稍微复杂一点,因为我有一个名字,而不是 ID。
无论如何,感谢您的建议,我找到了我正在寻找的解决方案:
$("[name=' + myNameIdentifier +']").filter(":input:enabled:visible:first");
IIRC 第一对引号是必须的,不包括它们是一个明显的错误。
此外,我忽略了 children、find 和 filter 之间的区别,所以我的问题不清楚。我想 select 所有具有给定名称的元素,然后对该 selection 应用过滤器(不关心 children 或后代)。
$.children() returns 一个元素的所有子元素,因此您的代码实际上试图在 :input:enabled:visible:first
中找到 [name="myChildName"]
元素,而不仅仅是过滤它。你可能想要:
$('#myParentId').children(':first-child:enabled:visible')
$('#myParentId > [name="myChildName"]:input:enabled:visible:first')
我在 JavaScript 中 select 编辑了一个 DOM 元素。
var myParentElement = document.getElementById('myParentId');
现在,假设我想要使用 jQuery 到 select 第一个元素,即那个元素的 child,是一个可见的、启用的输入元素,并且有一个给定属性的特定值(这里我想检查元素的 name)。
$([name="myChildName"]).children(':input:enabled:visible:first'); // ?
上面的代码片段不正确,我该如何修正? (我知道一点CSS但不多jQuery)。
附加要求:本人限于jQuery1.7.2
编辑:抱歉,实际上比第一行稍微复杂一点,因为我有一个名字,而不是 ID。
无论如何,感谢您的建议,我找到了我正在寻找的解决方案: $("[name=' + myNameIdentifier +']").filter(":input:enabled:visible:first"); IIRC 第一对引号是必须的,不包括它们是一个明显的错误。
此外,我忽略了 children、find 和 filter 之间的区别,所以我的问题不清楚。我想 select 所有具有给定名称的元素,然后对该 selection 应用过滤器(不关心 children 或后代)。
$.children() returns 一个元素的所有子元素,因此您的代码实际上试图在 :input:enabled:visible:first
中找到 [name="myChildName"]
元素,而不仅仅是过滤它。你可能想要:
$('#myParentId').children(':first-child:enabled:visible')
$('#myParentId > [name="myChildName"]:input:enabled:visible:first')