javascript - Bagaimana untuk mendapatkan semua li dalam ul pada indeks yang ditentukan
淡淡烟草味
淡淡烟草味 2017-07-05 10:48:04
0
4
891

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

淡淡烟草味
淡淡烟草味

membalas semua(4)
淡淡烟草味

----- 06-03 14:50 -----

Terima kasih kepada jasonintju kerana menunjukkan kesilapan.

Ralat yang dilaporkan di sini bukan kerana tiada kaedah querySelectorAll 方法,是由于题主的 下标 越界了,导致取到的 是 undefinedundefined 没有 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 querySelectorAlldocument的方法,而不是 element ialah kaedah dokumen, bukan kaedah elemen.

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 |

Atau gunakan jQuery

var aLi = $('ul').eq(0).find('li');
过去多啦不再A梦

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梦

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. .

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan