存储JQuery选择器

时间:2013-04-29 08:31:53

标签: javascript jquery web-applications

是否有关于如何存储实际JQuery选择器的最佳实践? 不是他们返回的,而是选择器字符串本身。 我们项目中有很多选择器,我想为它们设置一个位置或对象,以便我可以根据需要快速编辑它们。

这样的事情:

LazySelectors = {
    candidate_photo : function() {
        return "#super-duper-selector";
    }
};

然后在很多地方或不同的脚本中引用它,如:

$(LazySelectors.candidate_photo()).magic();

我已经在JSpref上对此进行了测试,它的速度要快一些。 任何最佳实践或建议?

2 个答案:

答案 0 :(得分:3)

我通常这样做:

jQuery(function(){
    LazySelectors  = {
        lazyFormSelector:"#lazyForm",
        createButtonSelector:"#lazyCreateButton",
        idSomeLevel:-1,
    }
    jQuery.extend(SomeOtherObject.LazyObject,LazySelectors);
})

并将整个LazySelectors对象保存在不同的.js文件中。

您可以像$(SomeOtherObject.LazyObject.lazyFormSelector)

一样使用它

另一件事:据我所知(我可能在这里错了),从性能的角度来看,最好缓存“包装”的DOM元素,否则你将会是每次执行$(SomeOtherObject.LazyObject.lazyFormSelector)

时遍历DOM

答案 1 :(得分:0)

我认为最好的方法( Better Performance ),只需直接使用字符串,不需要函数。

#references.js
var refCandidate_photo = $("#super-duper-selector");