JQuery选择所有不带选项的选项

JQuery选择所有不带选项的选项,jquery,select,Jquery,Select,使用JQuery如何选择没有子项的所有项 我尝试了$(“.MySelectsClass”).not(“选项”),但它不起作用。您可以使用:not和:has选择器: $(".MySelectsClass:not(:has(option))) 您可以使用:empty选择器: $(".MySelectsClass:not(:has(option))) $('.myselectclass:empty').addClass('foo'); .foo{ 边框:1px纯红; } 不是空的! 您始终可以

使用JQuery如何选择没有子项的所有


我尝试了
$(“.MySelectsClass”).not(“选项”)
,但它不起作用。

您可以使用
:not
:has
选择器:

$(".MySelectsClass:not(:has(option)))

您可以使用
:empty
选择器:

$(".MySelectsClass:not(:has(option)))
$('.myselectclass:empty').addClass('foo');
.foo{
边框:1px纯红;
}

不是空的!
您始终可以使用应用任意过滤器,例如在这种情况下:

console.log($(“select”).length);
var emptyselects=$(“选择”).filter(函数(i){
返回$(this).find(“选项”).length==0;
});
console.log(emptyselects.length);
console.log(emptyselects.attr(“id”);

A.

可能重复的您是否可以添加一段您的““HTML,这样我们就可以看到您的no option元素是什么样子了?@DavidThomas可以安全地假设
没有子项的项目。@freedom:可能,但也可能包含空格或
元素,这会影响选择器的选择。例如:
select:empty
将是最简单的选择器,但如果有空格或任何子代,它将无法工作。这就是为什么我们不应该根据最少的信息进行假设或猜测。@DavidThomas你是对的,尤其是关于
。Milind的狡猾的编辑混淆了这个问题-它最初明确地是“没有孩子的”,但现在是“是空的”,正如你所指出的,这不是一回事。这种方法比使用not和has更有效,对吗?我不确定性能,如果你愿意,你可以用它来测试。就我个人而言,我更喜欢它,因为它简洁明了intent@nauti你的问题没有问性能。一般来说,除非你有一个利基案例,你试图每秒做1000次某件事,否则你希望澄清你的表现,在这种情况下,你可能希望以不同的方式来做。