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!