如何从下面给出的数据中获取自定义属性?

时间:2017-04-25 12:02:57

标签: jquery

我有一个div

<div class="re-compare-wrap re-compare-wrap-2467" style="display: block;">
    <div class="re-compare-item compare-item-2458" data-compareid="2458" style="display: block;">
        <i class="fa fa-times-circle re-compare-new-close"></i>
        <div class="re-compare-img">
            <a href="">
                <img src="" alt="Xbox One S Minecraft Console Bundle 500GB"></a>
            </div><div class="re-compare-title">
            <a href="">Xbox One S Minecraft Console Bundle 500GB</a>
        </div>
    </div>
    <div class="re-compare-item compare-item-2439" data-compareid="2439" style="display: block;">
        <i class="fa fa-times-circle re-compare-new-close"></i>
        <div class="re-compare-img">
            <a href=""><a href="">Sony PlayStation Move Motion Controller – Twin...</a>
        </div>
    </div>
</div>

我想在这里获得两个div的data-compareid 我正在使用jquery

trm = '.re-compare-tab-' + response.pageid +' div';
    var dtmln = '';
    alert('trm ' + trm);
    $(trm).each(function(i, obj){
        dtmln = $(this).data("compareid") + ',';
        alert('dsds '+ dtmln );
    });

response.pageid有2467号,但我dsds为空。

3 个答案:

答案 0 :(得分:1)

你正在循环遍历.re-compare-wrap-2467内的所有div。尝试仅通过重新比较项目进行循环

trm = '.re-compare-wrap-' + response.pageid +' div.re-compare-item';
    var dtmln = '';
    //console.log('trm ' + trm);
    $(trm).each(function(i, obj){

        dtmln = $(this).data("compareid") + ',';
        console.log('dsds '+ dtmln );
    });
工作小提琴 https://jsfiddle.net/jinspeter/c7xodh0z/

答案 1 :(得分:0)

编辑:

只过滤具有data-comparid的div:

$('div').filter(function (index) {
    return ($(this).attr('data-compareid'));
}).each(function(i,obj){
    alert($(this).prop('class') + ' ' + $(this).attr('data-compareid'));  
    });


您发布的代码中没有重新比较-tab-2467 div,所以我猜有一个父DIV你没有发布但是没关系,我只是稍微更改了代码以使用一个存在的DIV并显示你如何阅读data-compareid属性:

&#13;
&#13;
//trm = '.re-compare-wrap-2467 div';
//    var dtmln = '';
//    alert('trm ' + trm);
//    $(trm).each(function(i, obj){
//        dtmln = $(this).attr("data-compareid") + ',';
//        alert('dsds '+ dtmln );
//    });


    
    $('div').filter(function (index) {
        return ($(this).attr('data-compareid'));
    }).each(function(i,obj){
  		alert($(this).prop('class') + ' ' + $(this).attr('data-compareid'));  
		});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="re-compare-wrap re-compare-wrap-2467" style="display: block;">
    <div class="re-compare-item compare-item-2458" data-compareid="2458" style="display: block;">
        <i class="fa fa-times-circle re-compare-new-close"></i>
        <div class="re-compare-img">
            <a href="#">
                <img src="" alt="Xbox One S Minecraft Console Bundle 500GB"></a>
            </div><div class="re-compare-title">
            <a href="">Xbox One S Minecraft Console Bundle 500GB</a>
        </div>
    </div>
    <div class="re-compare-item compare-item-2439" data-compareid="2439" style="display: block;">
        <i class="fa fa-times-circle re-compare-new-close"></i>
        <div class="re-compare-img">
            <a href="#">Sony PlayStation Move Motion Controller – Twin...</a>
        </div>
    </div>
</div>
&#13;
&#13;
&#13;

还有一个jsfiddle:

https://jsfiddle.net/HappyiPhone/r3hw5brt/

希望它有所帮助!

答案 2 :(得分:0)

@charlietfl感谢你指出我的错误,我正在服用错误的班级名称。