jQuery - 将1附加到jQuery对象中的所有ID

时间:2014-11-09 04:04:48

标签: javascript jquery html

这包括嵌套的东西。这可能吗?所以说我有一个看起来像

的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>

6 个答案:

答案 0 :(得分:1)

您可以使用从DOM中的任何点开始的id属性循环遍历所有从属对象:

$("#a").find("[id]").addBack().each(function() {
    this.id += "1";
});
  1. id="a"
  2. 的根对象开头
  3. 查找具有id属性的所有下属
  4. 添加根对象
  5. 然后,在该集合
  6. 中的每个id的末尾添加“1”

答案 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>