将子数据属性名称和值添加到父级中

时间:2014-02-25 00:54:12

标签: jquery parent-child attr

我已经循环包含带有名为data-rating的数据属性的子元素的div。我需要做的是获取子项的属性和值,并添加到每个父div。

以下是代码:

<div class="tile">                                      
    <div class="title-band">
        <h3>Test Agency</h3>
        <ul data-rating="3.0" class="rating" data-id="13">
            <li class="whole"><span class="l"></span><span class="r"></span></li>
        </ul>                   
    </div>
</div>

<div class="tile">                                      
    <div class="title-band">
        <h3>Another Agency</h3>
        <ul data-rating="2.0" class="rating" data-id="14">
            <li class="whole"><span class="l"></span><span class="r"></span></li>
        </ul>                   
    </div>
</div>

这是我想要完成的事情:

<div class="tile" data-rating="3.0">                                        
    <div class="title-band">
        <h3>Test Agency</h3>
        <ul data-rating="3.0" class="rating" data-id="13">
            <li class="whole"><span class="l"></span><span class="r"></span></li>
        </ul>                   
    </div>
</div>

<div class="tile" data-rating="2.0">                                        
    <div class="title-band">
        <h3>Test Agency</h3>
        <ul data-rating="2.0" class="rating" data-id="14">
            <li class="whole"><span class="l"></span><span class="r"></span></li>
        </ul>                   
    </div>
</div>

感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

您可以使用类title-band获取父div,然后使用.attr()设置属性值,如

尝试

jQuery(function ($) {
    $('.title-band').attr('data-rating', function () {
        return $(this).find('ul').data('rating')
    })
})

演示:Fiddle

答案 1 :(得分:1)

$('ul[data-rating]').each(function(i,a) {
    $(a).parent().attr('data-rating', $(a).data('rating'));
});

答案 2 :(得分:0)

div,其子元素具有data-rating属性:

$('div > [data-rating]').each(function(){
    $(this).parent().attr('data-rating', $(this).data('rating'));
});

如果子元素不是第一级,请删除>