Javascript $(“选择器”).find(“psuedo类”)不返回所需的元素
我有以下声明:Javascript $(“选择器”).find(“psuedo类”)不返回所需的元素,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我有以下声明: var optionsWithAttribute = $(element).find("option[data-attribute]"); 现在我想从该集中获取所选选项,因此我写: var selectedOptions = optionsWithAttribute.find(":selected"); 但是,这会产生有效的选择器: "option[data-attribute] :selected" 这显然不匹配(感谢你帮我解决了这个问题)。正确的选择器应为: "opti
var optionsWithAttribute = $(element).find("option[data-attribute]");
现在我想从该集中获取所选选项,因此我写:
var selectedOptions = optionsWithAttribute.find(":selected");
但是,这会产生有效的选择器:
"option[data-attribute] :selected"
这显然不匹配(感谢你帮我解决了这个问题)。正确的选择器应为:
"option[data-attribute]:selected"
(注意]
后面缺少空格)
显然,这是因为对
.find()
的后续调用预先添加了一个空格,以便(例如)表达式$(“select”).find(“option”)
生成选择器select option
,而不是selectoption
。如果传入的选择器是伪类(即以冒号开头),则应该将find()更改为不插入空格。您需要使用过滤器,因为选项WithAttribute
包含选项
元素,find()
将查找匹配的子元素
var selectedOptions = optionsWithAttribute.filter(":selected");
您需要使用筛选器作为
选项WithAttribute
包含选项
元素,find()
将查找匹配的子元素
var selectedOptions = optionsWithAttribute.filter(":selected");
.find()
选择父元素的子元素,您需要使用.filter()
,它将只提供具有select属性的项
使用此代码时var selectedOptions=options with attribute.find(“:selected”)
jquery将搜索从标记选项(optionsWithAttribute)中选择属性的所有元素。.find()
选择父元素的子元素,您需要使用.filter()
,它将只提供具有select属性的项
使用此代码时var selectedOptions=options with attribute.find(“:selected”)代码>jquery将搜索从标记选项(optionsWithAttribute)中选择属性的所有元素。尝试使用方法
将匹配的元素集减少为与选择器或
通过函数的测试
尝试使用方法
将匹配的元素集减少为与选择器或
通过函数的测试
“选项[数据属性]:选中”
这显然不匹配
因为这是不正确的,所以您无法在选项中找到所选选项,所以请将其更改为:
var optionsWithAttribute = $(element).find("option[data-attribute]:selected");
console.log(optionsWithAttribute)
“选项[数据属性]:选中”
这显然不匹配
因为这是不正确的,所以您无法在选项中找到所选选项,所以请将其更改为:
var optionsWithAttribute = $(element).find("option[data-attribute]:selected");
console.log(optionsWithAttribute)
使用.filter()。这与您是否正在使用伪类无关,并且没有出现前置:.find()方法查找子元素。.find()
添加一个空格,因为空格和.find()
是同一回事$(“选择”).find(“选项”)
表示返回select
元素下的所有option
元素-这与$(“选择选项”)
@freedomn-m相同,这可能不在操作范围内,但您可以使用.find()
作为$(“选择”).find(“选项”)或$(“选择选项”)
如果您已经有了对象,请使用第一个,例如var s=$(“选择”);s.find(“选项”)
。如果您有/想要它作为文本,请使用第二个。您也可以使用$(“选项”,s);
,但许多人觉得这很困惑,更喜欢。find
格式。哇,现在我觉得自己很笨。谢谢大家-我知道。filter()
存在,但它不允许指定选择器。使用.filter()。这与您是否使用伪类无关,并且没有出现前置:.find()方法查找子元素。.find()
添加一个空格,因为空格和.find()
是同一回事。$(“select”).find(“option“
表示返回select
元素下的所有option
元素-这与$(“select option”)
@freedomn-m相同,这可能不在OP中,但您可以使用.find()
作为$(“select”).find(“option”)
或$(“select option”)来判断哪个更好
如果你已经有了对象,就使用第一个,例如var s=$(“select”);s.find(“option”)
。如果你有/想要它作为文本,就使用第二个。你也可以使用$(“option”,s);
但是很多人觉得这很混乱,更喜欢。find
格式。哇,现在我觉得自己很笨。谢谢大家-我知道.filter()
存在,但不允许指定选择器。