2010-12-21 11 views
18
<html> 
<head> 
    <title>Test javascript</title> 

    <script type="text/javascript"> 
     var e = document.getElementById("db_info"); 
     e.innerHTML='Found you'; 
    </script> 
</head> 
<body> 
    <div id="content"> 
     <div id="tables"> 

     </div>   
     <div id="db_info"> 
     </div> 
    </div> 
</body> 
</html> 

यदि मैं alert(e); का उपयोग करता हूं तो यह null बदल जाता है .... और स्पष्ट रूप से मुझे स्क्रीन पर कोई भी "आपको नहीं मिला" मिलता है। मैं क्या गलत कर रहा हूं?जावास्क्रिप्ट आईडी द्वारा तत्व नहीं ढूंढ सकता है?

+0

खाद्य: जब जावा स्क्रिप्ट कोड ब्लॉक चलता है? Id "db_info" आईडी के साथ DIV कब बनाया गया है और/या मौजूद होने की गारंटी है? Window.onload और अज्ञात फ़ंक्शन ^^ के लिए –

उत्तर

40

समस्या यह है कि आप मौजूद होने से पहले तत्व तक पहुंचने का प्रयास कर रहे हैं। आपको पृष्ठ को पूरी तरह लोड होने की प्रतीक्षा करनी होगी। हालांकि,

window.onload = function() { 
    var e = document.getElementById("db_info"); 
    e.innerHTML='Found you'; 
}; 

सबसे आम JavaScript लाइब्रेरी एक डोम के लिए तैयार घटना प्रदान करते हैं: एक संभावित दृष्टिकोण onload हैंडलर का उपयोग करना है। यह बेहतर है, क्योंकि window.onload सभी छवियों के लिए भी इंतजार कर रहा है। आपको ज्यादातर मामलों में इसकी आवश्यकता नहीं है।

एक और तरीका स्क्रिप्ट टैग को अपने बंद होने से पहले </body> -tag से पहले रखना है, क्योंकि इसके सामने सब कुछ निष्पादन के समय लोड होता है।

+2

+1 –

0

स्क्रिप्ट को शरीर के डीओएम के निर्माण से पहले किया जाता है। इसे सभी को एक फ़ंक्शन में रखें और इसे बॉडी-एलिमेंट के onload से कॉल करें।

1

या तो body टैग बंद करने से पहले या तो ऑनलोड ईवेंट में कोड चलाएं। आप उस तत्व को खोजने का प्रयास करते हैं जो उस समय नहीं होता है जब आप इसे करते हैं।

1

ब्राउज़र को स्क्रिप्ट टैग के अंदर कोड चलाने के लिए कैसे पता चलेगा? तो, कोड चलाने के बाद खिड़की पूरी तरह से भरी हुई है बनाने के लिए,

window.onload = doStuff; 

function doStuff() { 
    var e = document.getElementById("db_info"); 
    e.innerHTML='Found you'; 
} 

अन्य वैकल्पिक अपने <script...</script> बस से पहले बंद करने </body> टैग रखने के लिए है।

1

तत्व मौजूद होने से पहले स्क्रिप्ट को बुलाया जाता है।

आप निम्न में से एक प्रयास करना चाहिए: एक समारोह में

  1. रैप कोड और इसे कहते हैं body onLoad द्वारा स्थापित का उपयोग करें।
  2. विचार के लिए स्क्रिप्ट टैग घोषणा में दस्तावेज़
  3. उपयोग आस्थगित करें विशेषता के अंत में स्क्रिप्ट डाल
संबंधित मुद्दे