Maison  >  Questions et réponses  >  le corps du texte

javascript - Comment obtenir tous les Li dans UL à un index spécifié

Comment obtenir tous les li en ul à un index spécifié

Je veux écrire comme ça
var afterUl=document.querySelectorAll('ul')(sy-1];
var afterLi=afterUl.querySelectorAll('li');
Mais la ligne suivante signalera une erreur
leilei. html:128 TypeError non intercepté : impossible de lire la propriété « querySelectorAll » de non défini. . .
Comment dois-je écrire. . Aide aux novices

淡淡烟草味淡淡烟草味2662 Il y a quelques jours854

répondre à tous(4)je répondrai

  • 淡淡烟草味

    淡淡烟草味2017-07-05 10:50:04

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

    Merci à Jasonintju d'avoir signalé l'erreur.

    L'erreur signalée ici n'est pas due au fait qu'il n'y a pas de méthode querySelectorAll 方法,是由于题主的 下标 越界了,导致取到的 是 undefinedundefined 没有 querySelectorAll.

    Il n'y a aucun problème avec l'écriture correcte des indices.

    Documentation supplémentaire
    Element.querySelectorAll() - API Web MDN

    ----- 03-06 04:30 -----

    leilei.html:128 Uncaught TypeError : Impossible de lire la propriété 'querySelectorAll' de undefined

    Le message d'erreur vous a déjà rappelé que l'attribut querySelectorAll n'est pas lisible car indéfini

    La raison est que querySelectorAlldocument的方法,而不是 element est une méthode de document, pas une méthode de element.

    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 这个方法 自然就报错了

    La solution est d'utiliser getElementsByTagName

    var oUl = document.getElementsByTagName('ul')[0];
    var aLi = oUl.getElementsByTagName('li');

    Vous pouvez vous référer à l'introduction de ces deux API dans la documentation JavaScript

    Document.querySelectorAll - Interface API Web | MDN
    element.getElementsByTagName - Interface API Web |

    Ou utilisez jQuery

    var aLi = $('ul').eq(0).find('li');

    répondre
    0
  • 过去多啦不再A梦

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

    Il existe de nombreuses façons de l'implémenter. Vous pouvez utiliser du JavaScript natif ou diverses bibliothèques js pour l'implémenter.
    Ici, nous utilisons JavaScript natif pour organiser une idée, ajoutons un attribut id à l'élément DOM de ul, supprimons l'ul via document.getElementById, puis supprimons l'élément li via getElementsByTagName.

    Le code est le suivant :

    
    <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);
    

    répondre
    0
  • 过去多啦不再A梦

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

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

    répondre
    0
  • 为情所困

    为情所困2017-07-05 10:50:04

    J'ai trouvé l'erreur moi-même, car la variable sy dans mon index suivant [sy-1] a été attribuée lors du parcours de tous les li auparavant, car tous les li sont bien plus que tous les ul, donc [sy-1] dépasse le nombre ul. la ligne supérieure ne sera pas définie et la ligne inférieure signalera une erreur.
    Merci à tous. . Cette question est trop enfantine. .

    répondre
    0
  • Annulerrépondre