我的问题与Reduce multiple if else statements 非常相似
我有多个 if else 语句,我想使用 jquery each 函数来提高代码效率,但我不知道该怎么做。
我在 wordpress 中运行 jQuery,我相信它在无冲突模式下运行,所以我无法获得更多(我认为的)高级主题,这些主题提供了适合我的示例,因为我无法理解使用正确的函数语法。
如果有人可以帮助我解释如何为我做这件事,那就太棒了。这是我的代码:
var $h6p = $("h6 + p");
var $h5p = $("h5 + p");
var $h4p = $("h4 + p");
var $h3p = $("h3 + p");
var $h2p = $("h2 + p");
var $h1p = $("h1 + p");
var $fullercolor_bg = "rgba(240,234,222,0.9)";
if($h1p.mouseIsOver()) {
$h1p.prev().css("background-color", $fullercolor_bg);
} else {
$h1p.prev().css("background-color", "");
}
if($h2p.mouseIsOver()) {
$h2p.prev().css("background-color", $fullercolor_bg);
} else {
$h2p.prev().css("background-color", "");
}
if($h3p.mouseIsOver()) {
$h3p.prev().css("background-color", $fullercolor_bg);
} else {
$h3p.prev().css("background-color", "");
}
if($h4p.mouseIsOver()) {
$h4p.prev().css("background-color", $fullercolor_bg);
} else {
$h4p.prev().css("background-color", "");
}
if($h5p.mouseIsOver()) {
$h5p.prev().css("background-color", $fullercolor_bg);
} else {
$h5p.prev().css("background-color", "");
}
if($h6p.mouseIsOver()) {
$h6p.prev().css("background-color", $fullercolor_bg);
} else {
$h6p.prev().css("background-color", "");
}
(如果 CSS 有一个先前的相邻兄弟选择器,我现在会欣喜若狂。)
编辑:感谢到目前为止的帮助,我应该提到的一件事是 else 语句的空设置是故意的。我已经使用 CSS 来定位同级选择器,并且在其中设置了背景颜色,因此我需要对其进行设置。不透明。
最佳答案
也许你可以通过使用 :header
来做这样的事情选择器。
$(':header + p').each(function () {
var $this = $(this);
$this.prev().css({
backgroundColor: $this.mouseIsOver()? 'rgba(240,234,222,0.9)' : 'transparent'
});
});
关于javascript - 替代javascript中的多个if else语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18103979/