$(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>
答案 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)
$('.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') );
});