Maison > interface Web > js tutoriel > Partagez une question d'entretien sur les fermetures, la liaison et ceci

Partagez une question d'entretien sur les fermetures, la liaison et ceci

高洛峰
Libérer: 2017-02-21 14:50:15
original
1032 Les gens l'ont consulté

Cet article vous présente principalement une question d'entretien sur la liaison de fermeture et ceci. L'article donne un exemple de code détaillé. Les amis dans le besoin peuvent s'y référer.

Le problème à résoudre est d'ajouter un événement click à chaque li pour l'ul suivant, et de faire apparaître l'index correspondant

<ul id="text">
 <li>这是第一个li</li>
 <li>这是第二个li</li>
 <li>这是第三个li</li>
</ul>
Copier après la connexion

Réponse 1 : lier, pointer la fonction anonyme actuelle vers ceci et passer i comme paramètre

var init = function(){
var obj = document.getElementById(&#39;text&#39;);
for(var i=0;i<obj.children.length;i++){
 obj.children[i].addEventListener(&#39;click&#39;,function(i){
 alert(i)
 }.bind(this,i))
}
}
init();
Copier après la connexion

Réponse 2 :Fermeture

var init = function(){
var lis=document.querySelectorAll("#text li");
 for(var i=0;i<lis.length;i++){
 lis[i].onclick=(function(i){
  return function(){
   alert(i);
  };
 })(i)
 }
}
init();
Copier après la connexion

Réponse 3 : La méthode la plus stupide, la correspondance

var init = function(){
 var obj = document.getElementById(&#39;text&#39;);
 for(var i=0;i<obj.children.length;i++){
 obj.children[i].addEventListener(&#39;click&#39;,function(item){
 var self = item.target;
 for(var j=0;j<obj.children.length;j++){
 if(self == obj.children[j]){
  alert(j);
 }
 }
 })
 }
}
init();
Copier après la connexion

Pour plus d'articles liés au partage d'une question d'entretien sur les fermetures, la liaison et tout cela, veuillez faire attention au site Web PHP chinois !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal