具有以下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网站上的进一步解释在这里。
尚方宝剑之说
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,即:整个文档。
诚然,这是一个极端的案例,但它只是在我正在研究的内容中出现,因此以为我将其放在后代。
- 3 回答
- 0 关注
- 415 浏览
添加回答
举报
0/150
提交
取消