javascript - Comment obtenir tous les Li dans UL à un index spécifié
淡淡烟草味
淡淡烟草味 2017-07-05 10:48:04
0
4
902

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

淡淡烟草味
淡淡烟草味

répondre à tous(4)
淡淡烟草味

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

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梦

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

为情所困

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal