jQuery选择器性能选项

时间:2014-10-03 15:08:05

标签: jquery performance jquery-selectors

我目前正在处理此代码

var cctypeid = $(this).attr("id");
var data = $.parseJSON($("#"+cctypeid+"-id").val());
    $.each(data, function (index, item) {

    });

.each()内,我需要填充index指示的表单字段。

两个问题:
 1)在这种情况下或类似情况下,这样的$("#myForm #myField")$("#myField")更有效吗?

2)如果我执行前者,但想要$("#myForm)缓存var _myform = $("#myForm),那么我该如何编写呼叫?这种情况下的缓存是否有意义?

好的,超过2个问题。

谢谢,
德里克

1 个答案:

答案 0 :(得分:1)

不,在选择器中使用两个身份而不是一个身份并不是更有效。相反,如果您有两个身份,浏览器必须检查具有第二个身份的元素是否实际位于具有第一个身份的元素内。

(当然,那里的功能有所不同。如果你真的只想要找到元素,如果它在另一个元素里面(例如,如果代码适用于不同的页面),那么你自然需要两个身份。)

如果您想使用元素作为搜索范围(出于其他原因),您可以使用find方法:

var frm = $("#myForm");
var field = frm.find("#myField");

或者你可以在jQuery调用中使用元素作为上下文:

var frm = $("#myForm");
var field = $("#myField", form);