如何获取当前paner-body下的checkbox data-id

时间:2016-04-05 06:04:27

标签: jquery

<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;

2 个答案:

答案 0 :(得分:1)

尝试使用jquery&#39; mapget来实现您的目标,

$(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());
  }
});

DEMO

答案 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]);
            }

        });