写js的一些思路及问题 采集

Posted 武侯668

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了写js的一些思路及问题 采集相关的知识,希望对你有一定的参考价值。

1利用循环给元素添加事件(例子:点击li,弹出当前li 的索引)

错误案例:

 1 <ul id="testUL">
 2     <li> index = 0</li>
 3     <li> index = 1</li>
 4     <li> index = 2</li>
 5     <li> index = 3</li>
 6 </ul>
 7 <div id="box">123333</div>
 8 <script>
 9     var nodes = document.getElementsByTagName("li");
10     for(i = 0;i<nodes.length;i++){
11         console.log(nodes[i]);   // 可以循环打印。。。
12         nodes[i].onclick = function(){
13             // onsole.log(nodes[i]);   //undefined
14             console.log(i);//值全是4
15         };
16     }
17     var box = document.getElementById("box");
18     for(var j=0; j<5;j++){    //循环完成之后,才触发的事件。
19         box.onclick = function () {
20             console.log(j); //
21         }
22     }
23 </script>

 用闭包解决上述问题(正确案例)

 1 <ul id="testUL">
 2     <li> index = 0</li>
 3     <li> index = 1</li>
 4     <li> index = 2</li>
 5     <li> index = 3</li>
 6 </ul>
 7 <script>
 8     //循环绑定事件的时候闭包也很有用,关于闭包有个很经典的例子
 9     var add_the_handlers = function(nodes){
10         var helper = function(i){
11             return function(e){
12                 alert(i);
13             };
14         };
15         for(var i = 0;i<nodes.length;i++){
16             nodes[i].onclick = helper(i); //估计是点击的当前再传的值
17         }
18     };
19     add_the_handlers(document.getElementsByTagName("li"));
20 </script>

 

以上是关于写js的一些思路及问题 采集的主要内容,如果未能解决你的问题,请参考以下文章

20个简洁的 JS 代码片段

请帮忙用js或php写一个可以采集淘宝和天猫商品优惠价格的代码用函数方

关于采集用户页面停留时长的一些思路

VS Code中自定义Emmet代码片段

js代码片段

学习过程中的问题及思路