选择除了复选框或单选按钮输入之前的所有标签。

3
给定以下表单,如何选择除立即在复选框或单选按钮输入之前的所有标签之外的所有标签。
<form>
<label>Select This Label</label><input type="text" />
<label>Select This Label</label><input type="email" />
<label>Select This Label Main checkbox group</label><br>
<label>NOT THIS LABEL!</label><input type="checkbox" />
<label>NOT THIS LABEL!</label><input type="radio" />
<label>Select this arbitrary label just hanging out here</label>
</form>

目标:我想给除了标签4和5以外的所有标签添加一个类。
编辑:我尝试过使用不同位置的+和:not()运算符来选择器。
$( form label +:not(input[type=radio],input[type=checkbox]) ~ label) 

或者
$( form label:not(+input[type=radio],+input[type=checkbox]) ~ label) 

以及类似的内容。

编辑2* 我需要完全在选择器中完成这个操作。

2个回答

1

尝试:

$("form").find("label").each(function(){
    if(!($(this).next().is("input[type='radio']") || ($(this).next().is("input[type='checkbox']")))){
        $(this).addClass("someclass");
    }
});

在这里查看代码。


我需要完全在选择器中完成这个操作。 - Geoffrey Ochsner
"我需要完全在选择器中完成这个操作。为什么呢?" - j08691
1
经典的家长回答“因为我说了”足够吗? - Geoffrey Ochsner

0

我认为仅使用选择器是不可能的。

$('label').filter(function(){
    return !$(this).next().is('[type="radio"], [type="checkbox"]')
})

演示:Fiddle


我需要完全在选择器中完成这个。 - Geoffrey Ochsner
@GeoffreyOchsner https://dev59.com/iGkw5IYBdhLWcg3wSogs - Arun P Johny
标记为解决方案,因为似乎不可能。 - Geoffrey Ochsner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接