我有以下声明:
var optionsWithAttribute = $(element).find("option[data-attribute]");
我现在想从该集中获取选定的选项,所以我写道:
var selectedOptions = optionsWithAttribute.find(":selected");
但是这会产生有效的选择器:
"option[data-attribute] :selected"
这显然不匹配(感谢 jquery.whiny 帮助我解决这个问题)。正确的选择器是:
"option[data-attribute]:selected"
(注意 ]
后缺少空格)。
显然这是因为对 .find()
的后续调用会在前面添加一个空格,以便(例如)表达式 $("select").find("option")
产生选择器 select option
,而不是 selectoption
。要么我做错了什么 - 在这种情况下请教育我 - 或者如果传入的选择器是伪类(即以冒号)。
最佳答案
您需要使用过滤器,因为 optionsWithAttribute
包含 option
元素,find()
将查找匹配的后代元素
var selectedOptions = optionsWithAttribute.filter(":selected");
关于javascript - $ ("selector").find (":psuedo-class") 未返回所需元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35599396/