使用带有jquery的data-attr查找所有元素

时间:2013-05-30 16:09:08

标签: jquery custom-data-attribute

目的:

使用数据属性 parent-cat-number == my_cat_number 查找所有元素。

正如您从标记中看到的,我从属性“data-cat-number”中获取了父类别整数,但是我找不到所有具有父级cat编号的子项。

以下是http://jsfiddle.net/jahrichie/jGpcx/的外观示例,但是现在点击父级会显示所有孩子。我想让它适应只展示那个元素的孩子。

JS http://jsfiddle.net/jahrichie/jGpcx/

    $('.parent-category').click(function () {
        var my_cat_number = $(this).attr('data-cat-number');
        $(this).children().find("[parent-cat-number] = my_cat_number").show();

    })

HTML

<div class="category-faceted">
    <div class="parent-category" data-cat-number="1">
        <a href="javascript:void(0)">Celebrity</a>
        <div class="child-category" parent-cat-number="1">
            <a href="javascript:void(0)">Sub-Celebrity</a>
        </div>
    </div>
    <div class="parent-category" data-cat-number="2">
        <a href="javascript:void(0)">Entertainment</a>
        <div class="child-category" parent-cat-number="2">
            <a href="javascript:void(0)">Sub-Ent</a>
        </div>
    </div>
</div>

4 个答案:

答案 0 :(得分:1)

您可以使用此DEMO FIDDLE

$('.parent-category').on('click', function () {
  var my_cat_number = $(this).data('cat-number');
  $(this).find('*').each(function() {
    if($(this).attr('parent-cat-number') == my_cat_number)
      $(this).show();
  });
});

答案 1 :(得分:0)

怎么样:

$(this).children().find("[parent-cat-number] = '" + my_cat_number + "'").show();

答案 2 :(得分:0)

$('.parent-category').on('click', function () {
    var my_cat_number = $(this).data('cat-number');

    $('*', this).filter(function() {
        return $(this).attr('parent-cat-number') == my_cat_number;
    }).show();
});

FIDDLE

答案 3 :(得分:0)

你可以这样做:

$('.parent-category a').click(function() {
    $(this).parent()
        .find('[parent-cat-number="'+$(this).parent().data('cat-number')+'"]')
        .show();
    return false;
});

<强> Working Demo