我正在学习jquery,我发现我一直在写这样的东西:
if ($("#Menu").zIndex()<200) {
$("#Menu").zIndex(250)
return;
}
else
{
$("#Menu").zIndex(100)
return;
}
我认为必须有一种方法可以不必重复$(“#Menu”) - 类型选择器这么多。我看到我可以将$(“#Menu”)分配给变量,然后使用它,但吹掉了漂亮的“.zIndex”方法。或者我可以用功能做点什么。
针对此类情况的最佳做法是什么?
答案 0 :(得分:5)
您将使用jQuery元素或DOM中的某些内容的一个很好的指标是使用$
为变量添加前缀。这样,您就知道自己正在操纵一些HTML
元素,而不是只需var
运行所需的标准javascript
。
因此,您可以使用任何您想要的var
名称。我刚刚决定使用$m
来表示写入比$menu
或$("#menu")
修改:变量中caching
的另一个好处是jQuery
每次调用时都不必清除整个document
。 感谢callout @AdamMerrifield
var $m = $('#menu');
if($m.zIndex() < 200) {
$m.zIndex(250);
return;
} else {
$m.zIndex(100);
return;
}
此外,您甚至可以使用ternary operator
更多地缩短代码。
Learn More With Interactive Lesson
复制自@ Hardy的回复:
var $m = $('#menu');
var new_z = $m.zIndex() < 200 ? 250 : 100;
$m.zIndex(new_z);
答案 1 :(得分:1)
可读性是一种很好的做法。您还可以执行内联语句,如:
// Read this like "if zIndex is smaller than 200 new_z
// value comes to 250 else 100"
var new_z = $("#Menu").zIndex() < 200 ? 250 : 100;
$("#Menu").zIndex(new_z);
编辑:避免多次使用字符串类型引用元素。查看@Nicholas Hazel回答。