这包括嵌套的东西。这可能吗?所以说我有一个看起来像
的jQuery对象<div id="a">
<section id="b">
<nav id="c">
</nav>
</section>
</div>
如何让它实际代表
<div id="a1">
<section id="b1">
<nav id="c1">
</nav>
</section>
</div>
答案 0 :(得分:1)
您可以使用从DOM中的任何点开始的id属性循环遍历所有从属对象:
$("#a").find("[id]").addBack().each(function() {
this.id += "1";
});
id="a"
。答案 1 :(得分:1)
像这样:
$('*').each(function(){
$(this).attr('id',function(idx){
return idx = idx + 1;
});
});
答案 2 :(得分:1)
在jQuery中使用 attr()
方法并使用回调函数来执行此操作
$('div[id],section[id],nav[id]').attr('id', function() {
return this.id + '1'
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="a">
<section id="b">
<nav id="c">
</nav>
</section>
</div>
答案 3 :(得分:1)
您可以使用 jQuery("*") 选择器来选择所有dom元素。 但是如果你想让所有元素都在体内,你可以这样:
$("body").find("*").each(function(){
$(this).attr("id",function(idx){
return idx = idx + 1;
});
});
答案 4 :(得分:1)
$('[id]').attr('id',function() {
return this.id + '1';
});
var newID =
$('[id]').attr('id',function() {
return this.id + '1';
});
$('pre.out').text( $('<div/>').html(newID).html() );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="a">
<section id="b">
<nav id="c">
</nav>
</section>
</div>
<pre class="out"></pre>
<强> RESULT 强>:
<div id="a1">
<section id="b1">
<nav id="c1">
</nav>
</section>
</div>
答案 5 :(得分:0)
尝试像这样克隆它
<div id="content">
<div id="a">
<section id="b">
<nav id="c">
</nav>
</section>
</div>
</div>
<input id="add" type="button" value="Clone">
<script>
$(document).ready(function(){
$("#add").click(function(){
var newItem = $("#a").clone();
var newId = Math.floor((Math.random() * 100) + 1);
$(newItem).attr("id","a"+ newId);
var newSection = $(newItem).children()[0];
$(newSection).attr("id","b"+ newId );
var newNav = $(newSection).children()[0];
$(newNav).attr("id","c"+ newId );
$("#content").append(newItem);
});
});
</script>