• 利用Array Prototype的方法来实现对dom集合的筛选、indexOf、map等功能


    1. <!DOCTYPE html><html>
          <head>
              <title>TODO supply a title</title>
              <meta charset="UTF-8">
              <meta name="viewport" content="width=device-width, initial-scale=1.0">
              <style type="text/css">
                  div{background-color:red;margin:10px;}
              </style>
          </head>
          <body>
              <div class="w50" style="50px;height:20px"></div>
              <div class="w20" style="20px;height:20px"></div>
              <div class="w30" id="test" style="30px;height:20px"></div>
              <div class="w40" style="40px;height:20px"></div>
              <div class="w10" style="10px;height:20px"></div>
          </body>
      </html>
      var arrPro = Array.prototype;
      var core_filter = arrPro.filter;
      var core_indexOf = arrPro.indexOf;
      var core_slide = arrPro.slice;
      var core_sort = arrPro.sort;
      var core_map  = arrPro.map;
      
      //当然 为了兼容,应该有toArray方法,对不支持slice.call(nodeList)的浏览器,使用循环
      var divArr = core_slide.call(document.getElementsByTagName('div'));
      
      console.log('筛选出所有宽度小于等于30px的div',core_filter.call(divArr,function(item,index){                
          return parseInt(item.style.width,10) <= 30;
      }));
      console.log('获取#test元素的索引',core_indexOf.call(divArr,document.getElementById('test')));
      console.log('按照宽度倒叙排序',core_sort.call(divArr,function(a,b){
          return parseInt(a.style.width,10) < parseInt(b.style.width,10);
      }));
      //将所有div背景色改为黑色
      core_map.call(divArr,function(item){
          item.style.backgroundColor = 'black';
      });

      firebug截图:

  • 相关阅读:
    Codeforces Round #271 (Div. 2) C. Captain Marmot
    Codeforces Round #271 (Div. 2) F. Ant colony
    hdu 5002 Tree
    hdu 5052 Yaoge’s maximum profit
    hdu5044 Tree
    Codeforces Round #267 (Div. 2) D. Fedor and Essay
    hdu 4991 Ordered Subsequence
    暑假
    hdu4632 Palindrome subsequence
    【Oracle】【32】TRUNC 截取
  • 原文地址:https://www.cnblogs.com/henryli/p/3653824.html
Copyright © 2020-2023  润新知