<div class="panel-body">
<div class="checkbox checkbox-primary checkbox-circle">
<input data-id="680c11a0-5208-4c7b-acf9-176dedbb9878" data-share="default" type="checkbox">
</div>
<div class="checkbox checkbox-primary checkbox-circle">
<input data-id="6a63886e-15be-40d5-bf95-b796383f8c05" data-share="default" type="checkbox" checked>
</div>
<div class="checkbox checkbox-primary checkbox-circle">
<input data-id="b8ef0af4-eb2e-4387-8d2b-a75694911c56" data-share="default" type="checkbox" checked>
</div>
</div>
这是我的活动:
$(document).on('click', '[data-share="default"]', function () {
if ($(this).prop("checked")) {
$(this).attr("checked");
//get current panner-body children's input data-id
var obj = $(this).parents(".panel-body");
alert("");
}
else {
$(this).removeAttr("checked");
}
})
现在,问题是: 当复选框获得click事件时,如何获取当前obj中的所有复选框data-id值?
我希望可以获取当前panner-body下的所有data-id值,然后将它们连接到一个字符串,每个字符串之间加一个char&#39;&#39;
答案 0 :(得分:1)
尝试使用jquery&#39; map
和get
来实现您的目标,
$(document).on('click', '[data-share="default"]', function() {
if ($(this).prop("checked")) {
var obj = $(':checkbox[data-share="default"]', $(this).closest(".panel-body"));
alert(obj.map(function() {
return $(this).data("id");
}).get());
}
});
答案 1 :(得分:0)
$(document).on('click', '.panel-body .checkbox input[type=checkbox]:checked', function() {
var tempIdArr = [];
//code for current checked check box
tempIdArr[0] = $(this).attr('data-id');
//end code
//now code for all checked check-box in panel-body
var tempLen = $('.panel-body .checkbox input[type=checkbox]').length;
for (var i = 0; i < tempLen; i++) {
if ($('.panel-body .checkbox').eq(i).find('input[type=checkbox]').attr('checked')) {
tempIdArr[i] = $('.panel-body .checkbox').eq(i).find('input[type=checkbox]').attr('data-id');
}
}
for (var i = 0; i < tempIdArr.length; i++) {
console.log("'data-id' :" + "\n" + tempIdArr[i]);
}
});