如何将选择器与JavaScript标识符正确组合?

时间:2016-07-05 09:36:34

标签: jquery dom jquery-selectors

我在JavaScript中选择了一个DOM元素。

var myParentElement = document.getElementById('myParentId');

现在,让我说我想要,使用jQuery选择第一个元素,它是一个孩子,是一个可见的,启用的输入元素,AND具有给定属性的特定值(这里和我想要检查元素的名称)。

$([name="myChildName"]).children(':input:enabled:visible:first'); // ?

以上代码段不正确,我该如何解决? (我知道一点CSS,但jQuery不多)。

附加要求:我仅限于jQuery 1.7.2

编辑:对不起,实际上比第一行复杂一点,因为我有一个名字,而不是一个ID。

无论如何,多亏了你的建议我找到了我想要的解决方案: $(" [name =' + myNameIdentifier +']")。filter(":input:enabled:visible:first"); IIRC 第一对引号是必须的,不包括它们是一个明显的错误。

另外,我忽略了孩子之间的区别,发现和过滤,所以我的问题不清楚。我想选择具有给定名称的所有元素,然后对该选择应用过滤器(不关心孩子或后代)。

2 个答案:

答案 0 :(得分:1)

$。children()返回元素的所有子元素,因此您的代码实际上会尝试在:input:enabled:visible:first元素中找到[name="myChildName"] ,而不仅仅是过滤它。你可能想:

$('#myParentId').children(':first-child:enabled:visible')

答案 1 :(得分:1)

使用children selector(>)

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