我正在向另一个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);
答案 0 :(得分:1)
有什么区别:
document.getElementById("#grp").appendChild(grup).
和
this.grp.appendChild(grup);
好吧,第一个会失败,因为你没有id
"#grp"
的任何元素(你不使用#
,那就是“下一个”的CSS表达式事情是id
“)。使用document.getElementById
,您不会加入#
,因为它只是期待id
,而不是CSS选择器,所以:
document.getElementById("grp").appendChild(grup);
关于this
:this
将取决于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
。
附注:您可以而且应该使用class
和id
属性的反射属性:
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);