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