jquery嵌套问题! 15

下面那个速度更加快呢?真的find方法更好吗,为什么不少大网站都不用呢?为了代码更加整洁吗?$("#menu_listli").click(function(){...}... 下面那个速度更加快呢?真的find方法更好吗,为什么不少大网站都不用呢?为了代码更加整洁吗?
$("#menu_list li").click(function(){...}
$("#menu_list").find("li").click(function(){...}
刚刚在网上搜索的的答案!

http://baike.baidu.com/view/4663033.htm

Sizzle则采取了相反Right To Left的实现方式,先搜寻页面中所有的<li>标签,再其后的操作中才去判断它的父节点(包括父节点以上)是否为#menu_list,是则压入数组,否则pass,进入下一判断,最后返回该操作序列。
展开
 我来答
fanqiezz11
2014-11-20 · TA获得超过777个赞
知道小有建树答主
回答量:369
采纳率:0%
帮助的人:251万
展开全部
第一个是直接在页面上遍历,找id为menu_list 的元素,然后找到便签为li的节点,绑定方法

第二种是遍历页面元素,找到id为menu_list的,然后调用脚本时,再find(其实也是遍历)找到便签为li的元素

具体哪个更快。。。个人认为速度上应该没什么差距,只是如果页面较大,速度上差距应该也没什么,但消耗资源上,第一种是直接在页面找到li,把找到的调入脚本中,第二种是在页面找到menu_list 再在脚本中筛选出li,可见如果页面很大元素很多的话,第二种会带来很多的内存开销!本人的见解非官方仅供参考!
追问

这样的话,问题来了!如:


你的观点错了先找到【li】再找匹配【menu_list】的!

先找到 【本级】 再 匹配 【父级】的。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ygh31500
2014-11-20 · TA获得超过158个赞
知道答主
回答量:118
采纳率:100%
帮助的人:124万
展开全部
$("#menu_list li").click(function(){...} 推荐都是用这种写法,

就算是样式也推荐:
$("div.mydiv")
$("input.myinput")

在使用选择器的时候都推荐标签 + 属性 + 样式, 这样速度快一点。
如果另有需求的话,也只能用find 了,如:
为了不重复查找:
var list = $("#menu_list");
list.find("li").each(); // 1. 找儿子
list.css("background","red"); // 2 .修改背景色

需要对 list 做两件时 所以,还是需要用到 find
追问

你的观点错了先找到【li】再找匹配【menu_list】的!

先找到 【本级】 再 匹配 【父级】的。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式