如何查找特定的动态类名复选框?

时间:2014-04-16 01:15:25

标签: jquery html checkbox

我已成功生成动态复选框,我正在尝试选择所有函数来选择一些特定的复选框。所有复选框都有一个动态类名,如下所示

** HTML **

    <input type="checkbox"  value="None" id="itemselect" class="NP<seperator><?php echo $productId; ?>" name="itemselect" />

和其他一些复选框生成为:

<input type="checkbox"  value="None" id="itemselect" class="OS<seperator><?php echo $productId; ?>" name="itemselect" />

我要做的是在选中所有选中的复选框上选择class =“NP ........”。

我已经检查了堆栈溢出,我发现了下面的建议,有点回答我的问题,但在警报中我得到了对象对象,而我应该得到NP分隔符和productId。

请帮我查一下我的代码有什么问题。

 $(document).ready(function() {

 $("#itemselectall").on("click", function() {
    var all = $(this);
    $('input:checkbox').each(function() {
    var classchkd =   $(this).attr('class', all.attr('class'));
alert (classchkd);
 });
 });
 });

2 个答案:

答案 0 :(得分:1)

您可以使用“开头”选择器:

$('[class^="NP"]').prop('checked', true)

然而,将你的课程分开会更有意义:

<input type="checkbox"  value="None" id="itemselect" class="NP NP<seperator><?php echo $productId; ?>" name="itemselect" />

然后,你可以简单地选择所有这些:

$('.NP').prop('checked', true);

答案 1 :(得分:0)

我创建了一个小例子。

<强> HTML:

<button id="loadBox">load a checkbox</button>
<button id="toggleBoxes">toggle all boxes</button>
<div id="container">
</div>

<强>的javascript:

var counter = 1;
$("#loadBox").click(function(){
    $("#container").append("<input type='checkbox' class='NP1'>" +
                           "checkbox " + counter + "</input><br>");
    counter++;
})
var flipper = true;
$("#toggleBoxes").click(function(){
    $(".NP1").each(function(){
        $(this).prop("checked", flipper);
    })
    if (flipper)
        $("#toggleBoxes").text("uncheck all");
    else
        $("#toggleBoxes").text("check all");
    flipper = !flipper;
})

点击#loadBox按钮会在#container <div>中添加一个复选框。你可以根据需要调整这个函数来改变类(或者用PHP加载它们 - 你的工作方式大多不相关)。

单击toggle all boxes按钮可以全部选中或全部取消选中,具体取决于它们的上一次。关键是要改变你选择它们的方式。在这种情况下,我使用$(".NP1")。这将根据您加载的类进行更改,因此您需要通过选择器运行变量,该选择器设置为您要检查或取消选中的输入类。

FIDDLE