Maison > Questions et réponses > le corps du texte
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
淡淡烟草味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
方法,是由于题主的 下标 越界了,导致取到的 是 undefined
,undefined
没有 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 querySelectorAll
是 document
的方法,而不是 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 |
var aLi = $('ul').eq(0).find('li');
过去多啦不再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);
过去多啦不再A梦2017-07-05 10:50:04
let oLis = document.getElementsByTagName("ul")[index].getElementsByTagName("li");
为情所困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. .