我的問題是非常相似的Reduce multiple if else statements替代多,如果在JavaScript
我有多個if else語句,我想使用jQuery的每個功能,使代碼更有效,但我可以」不知道該怎麼做。
我在wordpress中運行jQuery,我相信它運行在noconflict模式下,所以我不能獲得更多(我認爲)高級主題,這些高級主題提供了示例爲我工作,因爲我不能理解使用的正確函數語法。
如果有人能夠幫助並解釋如何爲我做這將是驚人的。這裏是我的代碼:
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來定位兄弟選擇器,並設置背景色,所以我需要設置它。不透明。
將所有的jQuery對象放在數組中,遍歷數組並將邏輯應用到數組的每個元素。如果你不知道如何使用數組:http://eloquentjavascript.net/chapter4.html。 –
感謝您的鏈接。我會刷新我的陣列技能。 – patrickzdb