2010-12-03 8 views
6

मैं अब कुछ घंटों के लिए रहा हूं और बालों को बाहर निकालने के बारे में हूं। असल में मुझे जो करना है वह शरीर में दिखाई देने वाला पहला तत्व प्राप्त करता है और फिर उसके सामने एक और तत्व डालें।<body> से पहला तत्व प्राप्त करना, फिर सम्मिलित करें()

मुझे कोई सफलता (अपरिभाषित या नल) के साथ पहले तत्व प्राप्त करने के लिए निम्नलिखित

window.document.body.firstChild 

document.getElementsByTagName("body").firstChild 

document.getElementsByTagName("body")[0].firstChild 

window.document.documentElement.childNodes[1].childNodes[0] 

और पिछले के टुकड़े की मिश्रित और मेल नहीं खाते प्रयास की एक पूरी धसान की कोशिश की है। मैंने शरीर को सिर्फ तब प्राप्त करने की कोशिश की है, बिना किसी सफलता के बच्चे() को संलग्न करें।

यहां कोई भी सहायता की सराहना की जाती है। अग्रिम में धन्यवाद।

var first = document.body.children[0]; 
var beforeEle = document.createElement("div"); 
beforeEle.innerHTML = "I'm the first element in the body!"; 
document.body.insertBefore(beforeEle, first); 
+0

, एक iframe में यह है या एक सामान्य दस्तावेज़? – danjah

+1

'document.body.firstChild' ठीक है। क्या आप सुनिश्चित हैं कि आपके पास 'सम्मिलित करें) (सही' डालने के लिए तर्कों का क्रम है? –

उत्तर

2

आप कुछ इस तरह करना चाहते हैं। यह संभावना है कि आप इस तथ्य को देख रहे हैं कि insertBefore मूल तत्व का एक तरीका है, और यह मौजूदा तत्व से पहले नया तत्व लेता है। उदाहरण के लिए:

var addedElement = document.createElement('p'); 
addedElement.appendChild(document.createTextNode('Hello, world!')); 

var body = document.body; 
body.insertBefore(addedElement, body.firstChild); 
+0

'बच्चों' सार्वभौमिक रूप से समर्थित नहीं है (उदाहरण के लिए, इसे फ़ायरफ़ॉक्स में केवल संस्करण 3.5 में पेश किया गया था)। अब आपको 'बाल नोड्स' का उपयोग करना होगा। –

1

सबसे सुरुचिपूर्ण समाधान शरीर मैं के साथ कर सकता है के लिए एक तत्व पहले जोड़ें करने के लिए एक एक लाइनर है:

document.body.insertBefore(element, dom.document.body.firstChild) 
संबंधित मुद्दे