Jquery查找具有特定数据属性的元素

时间:2014-07-23 15:48:20

标签: javascript jquery

我可以使用什么函数来选择class =“rate_stars”的子div。

我的变量范围是1 - 5,我想选择具有该特定数据评级的子div。

我试过了

 $('rate_widget').find().attr('data-rating', info).prevAll().andSelf().addClass('ratings_vote');

但它没有用。

<div id="r1" class="rate_stars"
                             data-post-id="<?php echo $post_id ?>"
                             data-user-id="<?php echo $user_id;  ?>"
                             data-nonce="<?php echo $nonce ?>"
                            >
    <div data-rating="1" class="ratings_stars"></div>
    <div data-rating="2" class="ratings_stars"></div>
    <div data-rating="3" class="ratings_stars"></div>
    <div data-rating="4" class="ratings_stars"></div>
    <div data-rating="5" class="ratings_stars"></div>
    <div class="total_votes">vote data</div>
</div>

3 个答案:

答案 0 :(得分:4)

您可以使用jQuery中的属性选择器:

$('#r1').find('[data-rating="' + info + '"]')

参考: List of All jQuery Attribute Selectors

答案 1 :(得分:2)

这应该可以解决问题

var $div = $('.rate_stars div[data-rating="1"'])

如果需要,1可以用动态表达式替换

答案 2 :(得分:0)

根据我的经验,另一种方法是在每个元素上执行一个jquery然后检查数据属性,例如

$( ".ratings_stars" ).each(function( index ) {
    if($(this).data('rating') == 1){
         //Do Something
    }
});