WEB开发网
开发学院网页设计JavaScript JQuery Tips(4)----一些关于提高JQuery性能的... 阅读

JQuery Tips(4)----一些关于提高JQuery性能的Tips

 2009-12-21 00:00:00 来源:WEB开发网   
核心提示: 当然,在jquery定义(或者js函数)事件内,可以通过this来指代上下文:<divid="test"><divclass="inner">hi</div></div><scripttype=&quo

当然,在jquery定义(或者js函数)事件内,可以通过this来指代上下文:

  <div id="test"> 
    <div class="inner">hi</div> 
  </div> 
  <script type="text/javascript"> 
    $("#test").click(function() { 
      var text = $(".inner", this).text(); //this means $("#test") 
      alert(text);//alert hi 
    }); 
  </script>

当然,上面的例子也可以写成下面两种方式:

  <div id="test"> 
    <div class="inner">hi</div> 
  </div> 
  <script type="text/javascript"> 
    alert($("#test .inner").text()); //method 1 
    alert($("#test").find(".inner").text());//method 2 and it was best one 
  </script>

其中利用find方法是所有方法中效率最高的

当然,如果你是通过id选择符,也就是$("#..")来选择,不需要提供上下文参数.这对速度没有影响

将经常用的JQuery包装好的元素进行保存

如题,这点比较重要,因为使用$()对页面元素进行选择是需要耗费时间的.而保存为变量进行使用时,可以避免这种浪费,比如:

  <ul> 
  <li>one</li> 
  <li>two</li> 
  <li>three</li> 
  <li>four</li> 
  <li>five</li> 
  </ul> 
  <script type="text/javascript"> 
    for (i = 0; i < $("ul li").length; i++) {//very bad,select $("ul li") so many times,waste a lot of time 
      alert($("ul li")[i].innerHTML);//same here,very bad 
    } 
    var $li = $("ul li"); 
    for (i = 0; i < $li.length; i++) {//good one,only selct $("ul li") once 
      alert($li[i].innerHTML); //same here,good 
    } 
  </script>

编缉推荐阅读以下文章

  • JQuery Tips(3)----关于$()包装集内元素的改变
  • JQuery Tips(2)----关于$()包装集你不知道的
  • JQuery Tips(1)----关于$.Ready()

Tags:JQuery Tips 一些

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接