Rumah  >  Soal Jawab  >  teks badan

javascript - Bagaimana untuk mendapatkan semua li dalam ul pada indeks yang ditentukan

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

淡淡烟草味淡淡烟草味2662 hari yang lalu853

membalas semua(4)saya akan balas

  • 淡淡烟草味

    淡淡烟草味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 方法,是由于题主的 下标 越界了,导致取到的 是 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');

    balas
    0
  • 过去多啦不再A梦

    过去多啦不再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);
    

    balas
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-07-05 10:50:04

    let oLis = document.getElementsByTagName("ul")[index].getElementsByTagName("li");

    balas
    0
  • 为情所困

    为情所困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. .

    balas
    0
  • Batalbalas