使用javascript将div插入另一个div

时间:2013-04-30 07:03:55

标签: javascript html

我正在向另一个div插入一个div,我确实是在这篇文章的帮助下完成的 Inserting a Div Into another Div?。这是我的代码,工作正常。 该功能由元素

调用
<asp:LinkButton ID="LinkButton1" OnClientClick="generateDiv(); return false;
"runat="server" 
Text="Create New Group" CausesValidation="False"></asp:LinkButton>

function generateDiv() {
          var grup = document.createElement('div');
          grup.setAttribute('class', 'genDiv');
          grup.setAttribute('id', 'genId');
          this.grp.appendChild(grup);
   }

有什么区别:

document.getElementById("#grp").appendChild(grup)

this.grp.appendChild(grup); 

2 个答案:

答案 0 :(得分:1)

  

有什么区别:

document.getElementById("#grp").appendChild(grup).
     

this.grp.appendChild(grup);

好吧,第一个会失败,因为你没有id "#grp"的任何元素(你不使用#,那就是“下一个”的CSS表达式事情是id“)。使用document.getElementById,您不会加入#,因为它只是期待id,而不是CSS选择器,所以:

document.getElementById("grp").appendChild(grup);

关于thisthis将取决于generateDiv的调用方式。 如果它被称为grp div上的事件处理程序,那么this(可能)已经引用了grp元素而你不必再查一遍了。如果以其他方式调用,则this可能是其他内容,您需要通过grp查找div getElementById

修改:您稍后发布的代码:

<asp:LinkButton ID="LinkButton1" OnClientClick="generateDiv(); return false;" runat="server" Text="Create New Group" CausesValidation="False"></asp:LinkButton>

... generateDiv会将this视为全局对象,因此您必须使用document.getElementById


附注:您可以而且应该使用classid属性的反射属性:

function generateDiv() {
     var grup = document.createElement('div');
     grup.className = 'genDiv';
     grup.id = 'genId';
     document.getElementById("grp").appendChild(grup);
}

...尤其是因为IE8(我认为可能是IE7)以及如果你使用class而导致setAttribute一个错误。

答案 1 :(得分:-1)

HTML

<div id="box"></div>

JS

var e = $('<div></div>');
$('#box').append(e);