如何正确组合选择器和 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')

使用children selector(>)

$('#myParentId > [name="myChildName"]:input:enabled:visible:first')