Rumah > Soal Jawab > teks badan
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
淡淡烟草味2017-07-05 10:50:04
----- 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 ditentukan
Sebabnya kerana querySelectorAll
是 document
的方法,而不是 element
ialah kaedah
var afterUl = document.querySelectorAll('ul')[0];
// document.querySelectorAll('ul') 通过 document 的方法 querySelectorAll 得到了当前文档下的所有 ul 元素,是一个 NodeList 类数组。之后假设通过 [0] 取到了这个 NodeList 中的第一个元素,那么 afterUl 这个变量指向的是一个 DOM 元素,也就是 element
var afterLi=afterUl.querySelectorAll('li');
// 这时用 afterUl 也就是一个 element 调用 querySelectorAll,由于 element 下没有 querySelectorAll 这个方法 自然就报错了
Penyelesaian adalah dengan menggunakan getElementsByTagName
var oUl = document.getElementsByTagName('ul')[0];
var aLi = oUl.getElementsByTagName('li');
Anda boleh merujuk kepada pengenalan kedua-dua API ini dalam dokumentasi JavaScript
Document.querySelectorAll - Antara Muka API Web |. MDN
element.getElementsByTagName - Antara Muka API Web |
var aLi = $('ul').eq(0).find('li');
过去多啦不再A梦2017-07-05 10:50:04
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:
<ul id="ul-wrap">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
var ul_wrap = document.getElementById('ul-wrap');
var li_item = ul_wrap.getElementsByTagName('li');
console.log(ul_wrap);
console.log(li_item);
过去多啦不再A梦2017-07-05 10:50:04
let oLis = document.getElementsByTagName("ul")[index].getElementsByTagName("li");
为情所困2017-07-05 10:50:04
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. .