向该javascript添加多个排除项
最近有人给了我这段代码来修复我的单选按钮问题,它工作得很好,但是我如何排除更多的单选按钮组呢 我还想排除“午餐水果汁”和“午餐甜点”向该javascript添加多个排除项,javascript,Javascript,最近有人给了我这段代码来修复我的单选按钮问题,它工作得很好,但是我如何排除更多的单选按钮组呢 我还想排除“午餐水果汁”和“午餐甜点” 谢谢如果要从选择中排除某些单选按钮,您可能应该向要排除的单选按钮添加一个类。像这样: HTML 演示:这可能有点难看,但应该可以: $("input:radio").not("input:radio[name=lunch_desserts]").not("input:radio[name=lunch_fruitjuice]").not(...) 您所要做的就是将
谢谢如果要从选择中排除某些单选按钮,您可能应该向要排除的单选按钮添加一个类。像这样: HTML
演示:这可能有点难看,但应该可以:
$("input:radio").not("input:radio[name=lunch_desserts]").not("input:radio[name=lunch_fruitjuice]").not(...)
您所要做的就是将not()
命令一个接一个地链接起来,排除所有需要的元素
一个更好的方法是提供所有您想要处理类似类的无线电输入(例如使用这些输入
)。这样,线路就简单到如下所示:
var targetRadioButtons = $("input.use_these_ones")
var exclude=[“午餐水果汁”、“午餐甜点”];
var targetRadioButtons=$(“输入:无线电”);
对于(变量i=0;i
我建议在所有要选择的单选按钮中添加一个公共类,然后只使用类选择器:$(“.select me”)
。每次迭代都会覆盖targetRadioButtons
变量。也许您想创建一个包含所有元素的数组?即使您这样做了,您也不需要使用这种循环逻辑的选择器。@Lix,您错了。not()返回JQuery对象。此代码的正确性与可链接样式工作的原因完全相同。哦对不起-是的,你是对的。。。我没有注意到它是targetRadioButtons.不是(…)
。我仍然觉得循环是不必要的,虽然。。。(做一个假编辑来恢复我的投票。)虽然这可能会起作用,但你的代码会很快变得非常难看。你想添加另外5个被排除的元素会怎么样?是的,我刚刚意识到,我刚刚给你发了一封回复。有没有办法扭转它?我刚刚意识到我有更多的单选按钮需要包括而不是排除,你知道有没有办法扭转我发布的脚本,所以我只写我想包括的按钮?我建议使用我建议的类方法。。。只需将同一类添加到所有要忽略的元素中,然后使用.not()
排除它们:var targetRadioButtons=$(“输入:radio”).not(“.ignore_me_class”)所以单选按钮应该是:@exon-yes!确切地我无法让它工作,我使用PHP从数据库中生成单选按钮,我添加了一个名为“ignore_class”的行,当它设置为1时,它将回显class=“ignore_me”,然后添加var targetRadioButtons=$(“input:radio”)。而不是(“.ignore_me”);在顶部,但它不起作用,有什么想法吗?
<div><input type="radio" name="lunch_desserts" class="exclude" value="Jello"/> Jello</div>
<div><input type="radio" name="lunch_desserts" value="Pudding"/> Pudding</div>
<div><input type="radio" name="lunch_desserts" class="exclude" value="Candy"/> Candy</div>
<div><input type="radio" name="lunch_fruitjuice" value="Apple Juice"/> Apple Juice</div>
<div><input type="radio" name="lunch_fruitjuice" class="exclude" value="Orange Juice"/> Orange Juice</div>
<div><input type="radio" name="lunch_fruitjuice" value="Guava Juice"/> Guava Juice</div>
// Select radio buttons that do not have the exclude class
var targetRadioButtons = $("input:radio:not(.exclude)");
// Test it by disabling just the targetRadioButtons
targetRadioButtons.attr("disabled", true);
$("input:radio").not("input:radio[name=lunch_desserts]").not("input:radio[name=lunch_fruitjuice]").not(...)
var targetRadioButtons = $("input.use_these_ones")
var exclude = ['lunch_fruitjuice', 'lunch_desserts'];
var targetRadioButtons = $("input:radio");
for (var i = 0; i < exclude .length; i++)
targetRadioButtons = targetRadioButtons.not("input:radio[name="+exclude[i]+"]");