得到" id"并添加每个div(name =" id")

时间:2015-09-25 19:36:06

标签: jquery

$(document).ready(function() {
    var idPost = $('.post-outer').attr('id');
    $('.post-outer').attr('name', idPost);
});

当您在上面运行JS时,它只需要第一个" ID"在其他" DIV"中重复。 发生了什么:

<div class="post-outer" id="001" name="001">teste1</div>
<div class="post-outer" id="002" name="001">teste2</div>
<div class="post-outer" id="003" name="001">teste3</div>

我想要发生这件事:

<div class="post-outer" id="001" name="001">teste1</div>
<div class="post-outer" id="002" name="002">teste2</div>
<div class="post-outer" id="003" name="003">teste3</div>

3 个答案:

答案 0 :(得分:3)

使用.each()方法:

$('.post-outer').each(function() {
    $(this).attr( 'name', $(this).attr('id') );
});
  

迭代jQuery对象,为每个匹配的元素执行一个函数。

答案 1 :(得分:2)

.attr()函数可以将函数作为参数。它为每个元素重复调用该函数(如.each()所做的那样),返回的值是新的属性值。

$('.post-outer').attr('name', function() {
    return this.id;
});

这基本上等同于mevius的答案,但它不会反复调用.attr()

答案 2 :(得分:-1)

Demo

$('.post-outer .post-footer .post-footer-line.post-footer-line-2 .post-labels a').each(function(index, el) {
     $(this).parents('.post-outer:eq(0)').attr('itemtype', $(this).attr('href') );
});