appendChild或追加或插入 - 没有任何工作。 TD插错了地方

时间:2012-09-22 02:37:31

标签: javascript jquery prototype

我在这里度过了一段时间的魔鬼。这看起来很容易,但是我无法让它工作。 我的目标是在另一个TD之后插入/追加/追加孩子一个TD ...所以你有...

<table>
<tr>
<td class="eve"></td>
<td class="mo"></td>
</tr>
</table>

简单吧?瑙。

这是我的代码。

  var r = new Element('tr',{'class':'trclass'});
  var td2 = new Element('td',{'class':'mo'});
  var artDiv = new Element('div',{'class':'summary'});
  var td = new Element('td',{'class':'eve'});
  var div = new Element('div',{'class':'pad1','style':'overflow=hidden'});

我设置了一些元素。

   div.innerHTML = '<a href="' + disp.link + '" class="Link">somelink</a>';
artDiv.innerHTML = '<a href="'+ disp.link +'" class="url">' + disp.name  +'</a>';
td2.innerHTML = '<div class="pad1"><a href="' + disp.link + '" class="mo">' + disp.linkName  +'</a></div>';

  div.appendChild(artDiv);
   td.appendChild( div );
    r.appendChild(td);
    r.appendChild(td2)

我尝试过仅使用原型,仅使用jquery等等。当我尝试在控制台中执行此操作时,我可以使用它。但是当它坐在一个页面中时,无论我做什么......

我明白了:

<table>
<tr>
<td class="mo"></td> <-- THIS should be last TD, but no matter what, always goes first.
<td class="eve"></td>  
</tr>
</table>

2 个答案:

答案 0 :(得分:1)

你想要jQuery或原型的解决方案吗?

使用jQuery,一个简单的解决方案是首先在表中添加一个id / class。在那之后,这是非常直接的前进:

$(function() {
  var tdElement = "<td class='eve'></td>"; //the element you are inserting

  //lets say your table class is 'foo'
  $('.foo > tr').append(tdElement);
});

现在假设你只有一行。但是这会将tdElement附加到tr元素。

答案 1 :(得分:1)

如果您可以在创建TR时为其分配ID,则应该能够以非常简单的方式使用jQuery向它们附加。这是fiddle的快速{{3}}。

$(document).ready(function(){
    var td1 = "<td class='mo'>Cell Mo</td>"
    var td2 = "<td class='eve'>Cell Eve</td>"
    $("#targetRow").append(td1);
    $("#targetRow").append(td2);
});​

如果您无法分配TRs ID值但知道他们在表格中的顺序,您可以随时选择表格的TR并使用eq()将它们作为另一种选择。