【发布时间】:2016-02-08 15:40:37
【问题描述】:
我不得不在没有太多时间学习所有相关基础知识的情况下跳入 jQuery 开发,所以有一件事让我很不爽。
我看到我们的开发人员访问 jQuery 对象的两种不同方式:
案例一:
var container = $("#containerId");
// Then use it as:
container.hide();
案例 2:
var container = $("#containerId");
// Then use it as:
$(container).hide();
根据我最新的知识,通过像var obj = $(container) 一样包装一个容器,我们得到一个 jQuery 对象obj,我们可以进一步使用它。
但是为什么我看到开发人员在使用 $(obj).doSomething() 时会间歇性地再次包装它?
编辑:建议作为重复的问题是询问最佳实践,虽然类似,但我的问题纯粹是关于对 jQuery 对象包装的理解。
【问题讨论】:
-
案例二是多余的
-
您会看到,因为 (a) 他们在代码中不确定它是 jQuery 对象还是选择器(有时,例如函数参数可能不知道它是 jQuery 对象还是选择器),或(b)因为他们不知道更好。
-
也许他们将
obj误认为是 dom 对象,而不是 jquery 对象?通常认为在 jquery 对象前加上一美元表示它们确实是 jquery 对象是一种很好的做法 -
正如所说的@MysterX 是多余的,大多数开发人员这样做是因为他们不识别jQuerized 对象。幸运的是,jQuery 知道这一点,当它接收到一个 jquery 对象时,它会忽略重新声明
-
可能不止一位开发人员参与了代码 - 其中一位出现了语法错误。案例 2 是多余的。通常,当有人想要创建(并表示)一个 DOM 节点作为 jQuery 对象时,您会看到如下内容:
var $foo = $(".foo");这样,当有人稍后更新代码时,他们可以立即告诉 $foo 是一个 jQuery对象而不是变量或其他东西。
标签: javascript jquery object