我已成功生成动态复选框,我正在尝试选择所有函数来选择一些特定的复选框。所有复选框都有一个动态类名,如下所示
** 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);
});
});
});
答案 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")
。这将根据您加载的类进行更改,因此您需要通过选择器运行变量,该选择器设置为您要检查或取消选中的输入类。