为了账号安全,请及时绑定邮箱和手机立即绑定

jQuery查找与上下文选择

jQuery查找与上下文选择

开心每一天1111 2019-12-16 12:12:17
具有以下html代码段<div class="something">    <p>Some text</p></div><div class="somethingElse">    <p>some other text</p></div>我认为以下jquery代码段是相同的(将具有相同的结果):$(".something").find("p").css("border", "1px solid red");$("p", ".something").css("border", "1px solid red");我的问题是,一个摘要是否比另一个摘要好,应该使用
查看完整描述

3 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

通话不完全相同。


根据显然从事jQuery工作的Brandon Aaron的说法,并且根据此处的实时测试,find方法总是更快。在下面的屏幕截图中查看结果。如果我缺少什么,请发表评论。


视浏览器而定,速度相差10%或更大,这绝对值得使用find。


在Brandon网站上的进一步解释在这里。



查看完整回答
反对 回复 2019-12-17
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

我可以想到一个用例,其中使用context表单可能更可取-在上下文包含在可能为null的变量中的情况下。


例如:


// Only affect matching items that are descendants of '#parent'

do_something( $( '#parent' ) );

// Affect all matching items

do_something();


function do_something( $parent_element ){

  $( '.child', $parent_element ).each( function(){ } );

}

第二次do_something()调用,如果我们曾经使用过$parent_element.find(),它将失败,而在此示例中,如果$parent_element未定义或为空,则上下文为null,即:整个文档。


诚然,这是一个极端的案例,但它只是在我正在研究的内容中出现,因此以为我将其放在后代。



查看完整回答
反对 回复 2019-12-17
  • 3 回答
  • 0 关注
  • 391 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信