jquery :contains 的问题

alxw4616 2010-06-17 09:40:18
var ss = ".ItemName:contains('HP')"
匹配包含给定文本 HP 且 class =ItemName 的元素
该方法在 IE8下运行非常慢,CUP直接占死.

求高手提供一个高效的方法?
...全文
169 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wqkjj 2010-06-18
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wqkjj 的回复:]
引用楼主 alxw4616 的回复:
var ss = ".ItemName:contains('HP')"
匹配包含给定文本 HP 且 class =ItemName 的元素
该方法在 IE8下运行非常慢,CUP直接占死.

求高手提供一个高效的方法?

如果一定要用JS,则看看.ItemName和:contains('HP')两个选择器哪个过滤比较多,把过滤比较多的,放在后面执行……
[/Quote]

如果一定要用JQ
wqkjj 2010-06-18
  • 打赏
  • 举报
回复
[Quote=引用楼主 alxw4616 的回复:]
var ss = ".ItemName:contains('HP')"
匹配包含给定文本 HP 且 class =ItemName 的元素
该方法在 IE8下运行非常慢,CUP直接占死.

求高手提供一个高效的方法?
[/Quote]
如果一定要用JS,则看看.ItemName和:contains('HP')两个选择器哪个过滤比较多,把过滤比较多的,放在后面执行。比如.ItemName过滤得多,则写成:contains('HP').ItemName

直觉感觉自己写一个过滤函数最快,一次遍历搞定。
zxj828282 2010-06-18
  • 打赏
  • 举报
回复
学习了
Headsen 2010-06-18
  • 打赏
  • 举报
回复
setTimeout()一下!

既然你在其他浏览器OK。估计是浏览器问题!你是什么时候触发执行的啊,会不会有别的脚本强资源啊。
使用setTimeout()延迟一下执行
alxw4616 2010-06-18
  • 打赏
  • 举报
回复
所以要高效的方法啊
諾临風 2010-06-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 alxw4616 的回复:]
别的浏览器没问题,关键是 :contains('HP')
我的数据量在 3000条左右
[/Quote]

我晕死。我for一下一个Table,一千行,就卡得死机一个,你还三千啊?
alxw4616 2010-06-18
  • 打赏
  • 举报
回复
别的浏览器没问题,关键是 :contains('HP')
我的数据量在 3000条左右
alxw4616 2010-06-18
  • 打赏
  • 举报
回复

var ss = []
var ItemName = 'HP'
self.data.find(".tdItemName").each(function(){
if($(this).text().indexOf(ItemName)!= -1){
//ss.push(this)
}
});

谢谢大家的帮忙,问题已解决了
没有别的办法,只好自己手动遍历.
觉得应该是:contains的问题.
哎,jq也不是万能的啊!
passself 2010-06-17
  • 打赏
  • 举报
回复
应该没有问题啊,平时都是这样用的,你再别的浏览下试试,我怀疑不是浏览器的问题,也不是这个的问题,可能有别的原因
xuxubaby 2010-06-17
  • 打赏
  • 举报
回复
我一般也是这样获取的 绑定~

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧