【发布时间】:2016-01-18 23:54:11
【问题描述】:
将 DOM 对象存储为变量时,这是使用该变量的最佳实践:
// Option 1
var myElement1 = $(".container").find('ul li:eq(1)');
$(myElement1).css('background', 'red');
// Option 2
var myElement2 = $(".container").find('ul li:eq(2)');
myElement2.css('background', 'blue');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div class="container">
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
</div>
似乎我已经看到了这两种方式,正如你所看到的,它们都可以完成工作。选项 1 对我来说似乎有点多余,但我只是想在将选项 2 提交给我的个人风格之前检查一下。
【问题讨论】:
-
是的,选项一是多余的,因为
myElement1已经是一个 jQuery 对象 -
两者都不返回 jQuery 对象吗?如果是这样,则将其包裹在额外的括号中也没关系。作为旁注:我总是喜欢在 javascript 中将作为 jQuery 对象的变量标记为
var $myElement1并带有美元符号,以记住它实际上是一个 jQuery 对象。由于我们正在谈论最佳实践和所有... -
我总是存储带有'$'前缀的 jQuery 对象,所以选项 2 带有 $myElement2。它使跟踪变得更容易。
-
他们使用选项 1 不像您展示的那样,但是当他们在函数内部执行某些操作时,他们希望同时接受 jquery 对象和 htmlelement。没有人像选项 1 那样编写代码,这是没有意义的。
标签: javascript jquery jquery-selectors