var ss = ".ItemName:contains('HP')"
匹配包含给定文本 HP 且 class =ItemName 的元素
该方法在 IE8下运行非常慢,CUP直接占死.求高手提供一个高效的方法?

解决方案 »

  1.   

    别的浏览器没问题,关键是 :contains('HP')
    我的数据量在 3000条左右
      

  2.   


    我晕死。我for一下一个Table,一千行,就卡得死机一个,你还三千啊?
      

  3.   

    setTimeout()一下!既然你在其他浏览器OK。估计是浏览器问题!你是什么时候触发执行的啊,会不会有别的脚本强资源啊。
    使用setTimeout()延迟一下执行
      

  4.   

    如果一定要用JS,则看看.ItemName和:contains('HP')两个选择器哪个过滤比较多,把过滤比较多的,放在后面执行。比如.ItemName过滤得多,则写成:contains('HP').ItemName直觉感觉自己写一个过滤函数最快,一次遍历搞定。
      

  5.   


    var ss = []
    var ItemName = 'HP'
    self.data.find(".tdItemName").each(function(){
      if($(this).text().indexOf(ItemName)!= -1){
         //ss.push(this)
      }
    });谢谢大家的帮忙,问题已解决了
    没有别的办法,只好自己手动遍历.
    觉得应该是:contains的问题.
    哎,jq也不是万能的啊!