jQuery试图动态插入另一个div的HTML?

时间:2010-09-01 11:49:27

标签: javascript jquery html

这真的很难解释。我在表格中有一些带有id的div

<table id="dgAvailable">
  <tr> <td> <div id="HEYD"> </td> </tr> <tr> <td> <div id="HANW"> </td> </tr> 
</table>

我需要用这个内容填充这些div

<div class="evenprop"><h3>Hanworth</h3><span class="locid" style="display:none">HANW</span></div>
<div class="evenprop"><h3>Heydon</h3><span class="locid" style="display:none">HEYD</span></div>

所以我需要获取包含与我的其他div相同id的locid的div然后在表dgAvailable中的div中插入html

$('#dgAvailable > tr > td > div').each(function(){
  if $(this).attr('id') = $('.evenprop > .locid').attr('id') {
  $(this).html() = $('.evenprop > .locid').parent().html()
});

我真的没有其他方式来描述这个吗?

由于

杰米

2 个答案:

答案 0 :(得分:4)

应该这样做。

$('.locid').each(function(){
   $('#'+$.trim($(this).text())).html(this.parentNode.cloneNode(true));
});

答案 1 :(得分:2)

试试这个:

$("div.evenprop .locid").each(function() {
   $("#" + this.innerHTML).html($(this).parent().clone());
});

You can try out a demo against your markup here


如果您可以控制其他标记,可以使用数据属性清理它,如下所示:

<div class="evenprop" data-locid="HANW"><h3>Hanworth</h3></div>
<div class="evenprop" data-locid="HEYD"><h3>Heydon</h3></div>

然后你的jQuery也会变得更简单,就像这样:

$("div.evenprop").each(function() {
   $("#" + $(this).attr('data-locid')).html($(this).clone());
});

或者,如果您不需要旧节点并且只想移动它,请使用.append(),如下所示:

$("div.evenprop").each(function() {
   $("#" + $(this).attr('data-locid')).append(this);
});