2013-03-03 42 views
22

如何在不使用jQuery的情况下编写此代码?prepend没有jQuery?

$('body').prepend('<div id="idC" style="display: none;" class=""><div id="idA">' + titelN + '</div></div>'); 
+0

试着看起来更加轻盈 – mplungjan 2013-03-03 14:31:17

+6

我认为这个问题代表了自己。它与标记为重复的标记只有轻微的“相关”(标记的答案不能回答此问题) – 2014-02-06 12:00:59

回答

10

还有就是insertAdjacentHTML method,但它并没有在老年FF版本一起使用:

document.body.insertAdjacentHTML('afterbegin', '<div id="idC" style="display: none;" class=""><div id="idA">' + titelN + '</div></div>'); 
+0

实际上,它在大多数浏览器的旧版本中不起作用......但它们确实是旧版本(请参见https: //developer.mozilla.org/en-US/docs/Web/API/Element.insertAdjacentHTML);) - 它现在也是一个HTML5标准。但是,如果担心,那么不要害怕继续使用jQuery - 这正是它的目的。 – 2014-02-06 12:03:00

21

你应该先学会如何不使用任何库中创建一个元素。基本上,有一些方法可以为文档创建元素并附加元素。它们是createElement,insertBefore,appendChild

的createElement裁判:http://www.w3schools.com/jsref/met_document_createelement.asp
的insertBefore裁判:http://www.w3schools.com/jsref/met_node_insertbefore.asp
的appendChild裁判:http://www.w3schools.com/jsref/met_node_appendChild.asp

下面的代码应该为所有浏览器上运行。尝试更多,了解更多。

var parent = document.createElement("div"); 
parent.id = "idC"; 
parent.style.display = "none"; 

var child = document.createElement("div"); 
child.id = "idA"; 
child.innerHTML = titelN; 
parent.appendChild(child); 

document.body.insertBefore(parent,document.body.childNodes[0]);