Bagaimana untuk mendapatkan semua li in ul pada indeks yang ditentukan
Saya mahu menulis seperti ini
var afterUl=document.querySelectorAll('ul')[sy-1];
var afterLi=afterUl.querySelectorAll('li');
Tetapi baris berikut akan melaporkan ralat
leilei. html:128 Uncaught TypeError: Tidak dapat membaca sifat 'querySelectorAll' undefined. . .
Bagaimana saya harus menulis. . Bantuan orang baru
----- 06-03 14:50 -----
Terima kasih kepada jasonintju kerana menunjukkan kesilapan.
Ralat yang dilaporkan di sini bukan kerana tiada kaedah
querySelectorAll
方法,是由于题主的 下标 越界了,导致取到的 是undefined
,undefined
没有querySelectorAll
.Tiada masalah dengan penulisan subskrip yang betul.
Dokumentasi tambahan
Element.querySelectorAll() - API Web MDN
----- 06-03 04:30 -----
leilei.html:128 Ralat Jenis Tidak Ditangkap: Tidak dapat membaca sifat 'querySelectorAll' yang tidak ditentukan
Mesej ralat telah mengingatkan anda bahawa atribut
querySelectorAll
tidak boleh dibaca kerana ia tidak ditentukanSebabnya keranadokumen, bukan kaedah elemen.
querySelectorAll
是document
的方法,而不是element
ialah kaedahPenyelesaian adalah dengan menggunakan
getElementsByTagName
Anda boleh merujuk kepada pengenalan kedua-dua API ini dalam dokumentasi JavaScript
Document.querySelectorAll - Antara Muka API Web |. MDN
Atau gunakan jQueryelement.getElementsByTagName - Antara Muka API Web |
Terdapat banyak cara untuk melaksanakannya Anda boleh menggunakan JavaScript asli atau pelbagai perpustakaan js untuk melaksanakannya.
Di sini kami menggunakan JavaScript asli untuk menyusun idea, menambah atribut id pada elemen DOM ul, mengalih keluar ul melalui document.getElementById, dan kemudian mengalih keluar elemen li melalui getElementsByTagName.
Kod adalah seperti berikut:
let oLis = document.getElementsByTagName("ul")[index].getElementsByTagName("li");
Saya mendapati ralat itu sendiri, kerana pembolehubah sy dalam indeks saya yang berikutnya [sy-1] telah ditetapkan semasa melintasi semua li sebelum ini kerana semua li adalah lebih daripada semua ul, jadi [sy-1] melebihi nombor baris atas tidak akan ditentukan dan baris bawah akan melaporkan ralat.
Terima kasih semua. . Soalan ini terlalu kebudak-budakan. .