0

すべて選択およびすべてのオプションの選択を解除するチェックボックスのセットがあります...すべてのオプションを選択をクリックしているときに、各メインチェックボックスに関連付けられている子チェックボックスの詳細(ID、クラス、名前)を取得することは可能ですか..

http://jsfiddle.net/nBh4L/2/

$(function(){
$('.selectAll').on('click', function(evt){
var group = $(this).attr('data-group'),
    isChecked = !!($(this).prop('checked'));
$('input[value="' + group + '"]').prop('checked', isChecked);    
})

$('.entity').on('click', function(evt){
var group = $(this).attr('value'),
    siblings = $('input[value="' + group + '"]'),
    isChecked = true;
siblings.each(function(idx, el){
  if(!$(el).prop('checked')) {
    isChecked = false;
    return;
  }
})

$('.selectAll[data-group="' + group + '"]').prop('checked', isChecked);

})
})​
4

2 に答える 2

0

私は以下を使用します:

$(document).ready(function() {
    "use strict";
    $("input.select").on("click", function() {
        var $entities = $(this).siblings().find("input.entity");
        $entities.prop("checked", $(this).is(":checked"));

        //      This would also work if you want an array with ids.
        //      console.log($entities.map(function() {
        //          return $(this).attr("id");
        //      }));

        $entities.each(function() {
            console.log($(this).attr("id"));
        });
    });

    $("input.entity").on("click", function() {
        var $entityGroup = $(this).siblings().andSelf();
        $(this).parent().siblings("input.select").prop("checked", $entityGroup.length === $entityGroup.filter(":checked").length);
    });
});

これは、数時間前にあなたの他の質問に私がした答えへのほんの少しの追加です.

        $entities.each(function() {
            console.log($(this).attr("id"));
        });

上記は、さまざまなエンティティの ID をコンソールに記録します。この例から属性を使用および取得する方法を理解していただければ幸いです。

すべてを配列に入れたい場合は、これもオプションです。

        console.log($entities.map(function() {
            return $(this).attr("id");
        }));

jsFiddle の例

于 2012-08-21T11:15:39.737 に答える
0

このデモを見る: http://codebins.com/bin/4ldqp87

$('.selectAll').on('click', function(evt){
    var group = $(this).attr('data-group'),
        isChecked = !!($(this).prop('checked'));
    $('input[value="' + group + '"]').prop('checked', isChecked);
    siblings = $('input[value="' + group + '"]');
      siblings.each(function(){
          alert($(this).attr('name'));
      })     
  })
于 2012-08-21T11:11:40.967 に答える