getElementById ไม่สามารถรับวัตถุได้
มีลำดับเมื่อเบราว์เซอร์แยกวิเคราะห์เอกสาร ก่อนที่จะโหลดเพจ หรือก่อนที่จะโหลดออบเจ็กต์ DOM ที่เกี่ยวข้อง ไม่สามารถรับออบเจ็กต์ที่เกี่ยวข้องได้
ดูรหัสด้านล่าง:
<สคริปต์>
var temp = document.getElementById("div");
การแจ้งเตือน (อุณหภูมิ);
</สคริปต์>
<ร่างกาย>
<div id="div">
<input name="username" id="username" type="text">
<button id="btn">ปุ่ม</button>
</div>
</ร่างกาย> ในโค้ดนี้ document.getElementById(“div”) ไม่สามารถรับอ็อบเจ็กต์ได้ และ alert(temp) จะปรากฏขึ้นเป็นค่าว่าง
เนื่องจากเมื่อเบราว์เซอร์แยกวิเคราะห์โค้ดในแท็กสคริปต์ องค์ประกอบ DOM ในส่วนเนื้อความยังไม่ถูกโหลด ดังนั้นจึงไม่สามารถรับสิ่งใดได้ตามปกติ
วิธีแก้ไข: ย้ายโค้ดในสคริปต์ไปหลังองค์ประกอบเนื้อหา
<ร่างกาย>
<div id="div">
<input name="username" id="username" type="text">
<button id="btn">ปุ่ม</button>
</div>
<สคริปต์>
var temp = document.getElementById("div");
การแจ้งเตือน (อุณหภูมิ);
</สคริปต์>
</ร่างกาย>หรือเพิ่ม window.onload
<สคริปต์>
window.onload = ฟังก์ชั่น () {
var temp = document.getElementById("div");
การแจ้งเตือน (อุณหภูมิ);
-
</สคริปต์>สรุป
ข้างต้นคือสิ่งที่บรรณาธิการแนะนำให้คุณแก้ปัญหาของวิธีการแบบ document.getElementBy ที่ไม่สามารถรับออบเจ็กต์ได้ ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ downcodes.com!