2

如何在 JQuery 中为子 div 自动生成 id。请帮助我,我可以解决问题。

有 html 代码我想为这些设置 id,所以我可以对这些应用操作。

<div id="main">

<div class="child"></div>
<div class="child"></div>
<div class="child"></div>
<div class="child"></div>
<div class="child"></div>
</div>

在此处输入图像描述

我想适合这个。当点击 + 时,它应该是完整 div 上的最大值,而当点击更少时,它应该再次位于相同的位置。

4

4 回答 4

6

如果您尝试创建新 div 并将其分配给它,一种可能的解决方案可能是:

<div id="parent">

</div>

for(var i = 0; i< 10; i++) { // suppose I append 10 divs to parent
  $('#parent')
        .append('<div id="myid_'+ i +'">child'+ i +'</div>');
}

演示

但是,如果您已经div在 parent 中有 child ,那么

<div id="parent">
  <div>child 1</div>
  <div>child 2</div>
  <div>child 3</div>
</div>

那么一种可能的方法是

$('#parent div').each(function(i) {
   $(this).attr('id', 'myid_' + i);
});

根据编辑

<div id="main">
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
</div>

 $('#main .child').each(function(i) {
    $(this).attr('id', 'myid_' + i);
 });

演示

另一种方法是

$('#main .child').attr('id', function(i) {
   return 'myid_' + i;
});

演示

于 2012-06-15T05:08:59.467 回答
0

由于live()调用不支持就绪事件,因此无法自动执行此操作

于 2012-06-15T05:10:23.547 回答
0

这将给出子 div 的 ID,例如child-1child-2等等... child-n

$(function(){

   var childDivs=$("#main div");
   for(var i=0;i<childDivs.length;i++)
   {  
      $(childDivs[i]).attr("id","child-"+i);
   }        

});

示例: http: //jsfiddle.net/nsQcR/12/ (您可以查看视图源以查看 ID);

于 2012-06-15T05:20:09.603 回答
0

如果您希望id从数组中的散列中获取和其他信息,请遵循 codeparadox 对创建新 div 和分配值的响应:

arry = [{name: name1, addr: addr1, id: id1}, {name: name2, addr: addr2, id: id2}, etc...]

<div id="parent">
</div>

for(var i = 0, l = arry.length; i < l; i++) {
  var obj = arry[i]
  name = obj.name
  pid = obj.pid
  addr = obj.addr
  $('#parent').append('<div id=' + pid + '>' + name + ': ' + addr + '</div>');
};
于 2015-11-03T10:46:28.053 回答