Jquery 获得;id";并在每个div中添加(name=";id";)

Jquery 获得;id";并在每个div中添加(name=";id";),jquery,Jquery,当您在上面运行JS时,只需要在其他“DIV”中重复第一个“ID”。 发生了什么: $(document).ready(function() { var idPost = $('.post-outer').attr('id'); $('.post-outer').attr('name', idPost); }); teste1 测试2 测试3 我想这样做: <div class="post-outer" id="001" name="001">teste1</

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

$(document).ready(function() {
    var idPost = $('.post-outer').attr('id');
    $('.post-outer').attr('name', idPost);
});
teste1
测试2
测试3
我想这样做:

<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>
teste1
测试2
测试3
使用以下方法:

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

使用以下方法:

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

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

$('.post-outer').each(function() {
    $(this).attr( 'name', $(this).attr('id') );
});
这与mevius的答案基本相同,但它不会重复调用
.attr()

函数可以使用函数作为参数。它为每个元素重复调用函数(如
。each()
),返回的值是新的属性值

$('.post-outer').each(function() {
    $(this).attr( 'name', $(this).attr('id') );
});
这与mevius的答案基本相同,但它不会重复调用
.attr()


虽然我的答案有效,但这绝对是更好的答案。谢谢分享。虽然我的答案有效,但这绝对是更好的答案。感谢分享。第一行,
$('.post-outer').attr('id')
获取指向所有
.post-outer
元素的选择器,但是
attr
方法获取选择器指向的第一个元素的
'id'
属性。另一方面,
attr
setter应用于选择器中的每个元素,这意味着这三个元素的名称都是
“001”
。jQuery选择器本质上是围绕元素数组的包装器,因此任何用作getter/setter的方法都会表现出这种行为(getter从第一个元素获取,setter应用于所有元素)。第一行,
$('.post outer').attr('id')
,获取指向所有
。post outer
元素的选择器,但是
attr
方法获取选择器指向的第一个元素的
'id'
属性。另一方面,
attr
setter应用于选择器中的每个元素,这意味着这三个元素的名称都是
“001”
。jQuery选择器本质上是元素数组的包装器,因此任何作为getter/setter的方法都会表现出这种行为(getter从第一个元素获取,setter应用于所有元素)。
$('.post-outer').attr('name', function() {
    return this.id;
});
$('.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') );
});