Apabila bekerja dengan pembangunan web, menggunakan pemilih jQuery (cth., $('#id')) atau kaedah DOM asli seperti document.getElementById('id') adalah perkara biasa untuk memanipulasi elemen . Walau bagaimanapun, anda mungkin menghadapi situasi di mana kaedah ini gagal menemui elemen sasaran, mengakibatkan tingkah laku atau ralat yang tidak dijangka.
Artikel ini meneroka semua kemungkinan sebab untuk isu ini dan menyediakan langkah praktikal untuk membetulkannya.
Betulkan:
Betulkan:
Gunakan acara DOMContentLoaded atau $(document).ready() jQuery untuk memastikan DOM dimuatkan sebelum menjalankan skrip.
// Vanilla JavaScript document.addEventListener('DOMContentLoaded', function() { const element = document.getElementById('my-element'); }); // jQuery $(document).ready(function() { $('#my-element'); });
Contoh:
setTimeout(() => { const newDiv = document.createElement('div'); newDiv.id = 'dynamic-element'; document.body.appendChild(newDiv); }, 1000);
Betulkan:
Gunakan delegasi acara untuk elemen ditambah secara dinamik dengan jQuery:
$(document).on('click', '#dynamic-element', function() { console.log('Element clicked'); });
Contoh:
<div> </li> </ul> <p><strong>Fix</strong>:</p> <ul> <li>Ensure each element has a unique ID. Use classes instead of IDs if multiple elements need the same identifier.</li> <li> <p>Example:<br> </p> <pre class="brush:php;toolbar:false"> <div class="duplicate"></div> <div class="duplicate"></div>
Contoh:
// Vanilla JavaScript document.addEventListener('DOMContentLoaded', function() { const element = document.getElementById('my-element'); }); // jQuery $(document).ready(function() { $('#my-element'); });
Betulkan:
Contoh:
setTimeout(() => { const newDiv = document.createElement('div'); newDiv.id = 'dynamic-element'; document.body.appendChild(newDiv); }, 1000);
Contoh:
$(document).on('click', '#dynamic-element', function() { console.log('Element clicked'); });
Betulkan:
Contoh:
<div> </li> </ul> <p><strong>Fix</strong>:</p> <ul> <li>Ensure each element has a unique ID. Use classes instead of IDs if multiple elements need the same identifier.</li> <li> <p>Example:<br> </p> <pre class="brush:php;toolbar:false"> <div class="duplicate"></div> <div class="duplicate"></div>
Betulkan:
const parent = document.getElementById('parent'); const child = parent.querySelector('#child'); // Fails if #child is outside #parent
Penyahpepijat Breakpoint:
Ringkaskan Kod:
Atas ialah kandungan terperinci Mengapa jQuery atau Kaedah DOM Seperti `getElementById` Gagal Mencari Elemen?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!