jquery – 选择带有js数组名称的所有复选框

我想以这样的forms使用JQuery“check all”函数: http : //jetlogs.org/jquery/jquery_select_all.html

我的问题是我从php脚本生成我的表单,而且我不知道我将提前有多少个复选框。 我使用“数组”命名约定来获取我的$ _POST数据中所有选中的复选框值…所以我的复选框是这样的:

<input type="checkbox" name="items[]" value=""> 

但是这个JQuery声明不起作用:

 $("input[@name=items[]]").each(function() { this.checked = checked_status; }); 

可能是因为我的“项目”末尾的“[]”搞砸了JQuery声明……我试着像这样编写@ name = items []:“@ name = items []”,并提出一些反对意见-slash在[和]之前,因此它们不被视为特殊字符,但它不起作用……

如果有人知道解决方案,并愿意分享,那就太棒了!! 🙂

使用\\ (无空格)转义内部括号 – 它应该解决问题。

这个选择器适合我:

 $('input[name=items\\[\\]]') 

尝试使用

 $('input[name="items[]"]') 

不需要@并使用" 。注意引号外的选择器是' 。否则你可能会导致解析错误。

首先,您的name属性应该用于设置具有相同名称的+1元素。 它实际上与id属性相同,除引用外,每个元素应该是唯一的,但对您来说情况并非如此。

尝试使用class属性,它是为你想要做的事情做的!

另一件事是,在您的代码中,您只能将复选框设置为“已选中”,但永远不要取消选中,此代码会根据从被点击元素获取的属性将您的复选框设置为选中true或false。

你可以这样做:

使用id设置check all复选框

   

然后设置应该选中/取消选中一个类的所有复选框

  

你可以在jQuery中做这样的事情

 $("#checkAll").click( function(){ var checkedValue = $(this).attr("checked"); $("input.checked").attr("checked", checkedValue); }); 

这会将检查了类的所有复选框更改为与具有id checkAll的复选框相同的已检查属性

 $("input[name='smsid[]']") 

这段代码对我来说很好……