Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何正确组合选择器和JavaScript标识符?_Jquery_Dom_Jquery Selectors - Fatal编程技术网

Jquery 如何正确组合选择器和JavaScript标识符?

Jquery 如何正确组合选择器和JavaScript标识符?,jquery,dom,jquery-selectors,Jquery,Dom,Jquery Selectors,我在JavaScript中选择了一个DOM元素 var myParentElement = document.getElementById('myParentId'); 现在,让我们假设我想要,使用jQuery选择第一个元素,它是该元素的子元素,是一个可见的、启用的输入元素,并且具有给定属性的特定值(这里我想要检查元素的名称) 上面的代码片段不正确,我应该如何修复它?(我懂一点CSS,但不太懂jQuery) 附加要求:我仅限于jQuery 1.7.2 编辑:对不起,实际上比第一行稍微复杂一点,

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

var myParentElement = document.getElementById('myParentId');
现在,让我们假设我想要,使用jQuery选择第一个元素,它是该元素的子元素,是一个可见的、启用的输入元素,并且具有给定属性的特定值(这里我想要检查元素的名称)

上面的代码片段不正确,我应该如何修复它?(我懂一点CSS,但不太懂jQuery)

附加要求:我仅限于jQuery 1.7.2

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

无论如何,多亏了你的建议,我找到了我一直在寻找的解决方案: $(“[name='+myNameIdentifier+']”。筛选器(“:输入:已启用:可见:第一”); IIRC第一对引号是必须的,不包括它们是一个明显的错误

此外,我忽略了儿童、查找和筛选之间的区别,因此我的问题不清楚。我想选择具有给定名称的所有元素,然后对该选择应用过滤器(不关心子元素或子元素)。

$.children()返回元素的所有子元素,因此您的代码实际上尝试在
[name=“myChildName”]中查找
:输入:启用:可见:首先
元素,而不仅仅是过滤它。您可能想:

$('#myParentId').children(':first-child:enabled:visible')
$.children()返回元素的所有子元素,因此您的代码实际上尝试在
[name=“myChildName”]
元素中查找
:input:enabled:visible:first
,而不仅仅是对其进行筛选。您可能想:

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

使用


谢谢你的解释,但是我不太明白,$([name=“myChildName”])不应该给我一个元素列表,而不是一个元素列表吗?(afaik,与id不同,名称在文档中不要求是唯一的)。另外,关于您建议的代码,.children不是特定于jQuery吗?myParentElement不是以jQuery方式选择的,因此它是一个常规的HTMLElement。他们不允许使用jQuery的.children(),是吗?1
$([name=“myChildName”])
确实返回了一个列表。但是,
.children()
并不意味着“列表的所有成员…”,它意味着:“给定元素的子元素”2。你是对的,我刚刚修复了我的代码,使它可以从jquery开始工作,而不是常规的HtmleElement对象。感谢你的解释,我不太明白,但是,$([name=“myChildName”])不应该给我一个元素列表,而不是一个元素列表吗?(afaik,与id不同,名称在文档中不要求是唯一的)。另外,关于您建议的代码,.children不是特定于jQuery吗?myParentElement不是以jQuery方式选择的,因此它是一个常规的HTMLElement。他们不允许使用jQuery的.children(),是吗?1
$([name=“myChildName”])
确实返回了一个列表。但是,
.children()
并不意味着“列表的所有成员…”,它意味着:“给定元素的子元素”2。你是对的,我刚刚修复了我的代码,使它可以从jquery开始工作,而不是常规的HtmleElement对象。我没有想到这一点,尽管它是如此明显:(谢谢!:)我没有想到这一点,尽管它是如此明显:(谢谢!:)
$('#myParentId > [name="myChildName"]:input:enabled:visible:first')