jQuery选择器性能选项



我目前正在编写

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

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

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

2) 如果我做了前者,但想用var _myform = $("#myForm)缓存$("#myForm),那么我该如何编写调用?这种情况下的缓存有意义吗?

好的,超过2个问题。

谢谢,
Derek

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

(当然,这在功能上是有区别的。如果你实际上只想在元素位于另一个元素内部时找到它(例如,如果代码应该适用于不同的页面),那么自然你需要两种身份。)

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

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

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

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

最新更新