0
我已經寫了一個forEach循環,它通過div的數組(通過ID),選擇具有某個類的子元素並從中移除另一個類。我有幾個問題將變量轉換回選擇器並將其加入到其他變量中。因此,我的forEach循環不起作用。jQuery - ForEach循環中的變量選擇器
http://jsfiddle.net/NWmB5/7/(試着點擊其中一個鏈接,如果代碼工作的第三項應該再次變黑)
var toDoCategories;
$(document).ready(function() {
toDoCategories = [$("#testDiv"),$("#anotherDiv"),$("thirdDiv")];
setTimelinePosition($('#thirdDiv'));
$('#targetFirstDiv').click(function() {
setTimelinePosition($('#anotherDiv'));
});
$('#targetSecondDiv').click(function() {
setTimelinePosition($('#testDiv'));
});
});
/* Show current position on timeline */
function setTimelinePosition($position) {
var $theTimelineTrigger = $('span.timelineTrigger');
toDoCategories.forEach(function(currentCategory) {
var $deselectTimelinePositionElement = $(currentCategory, $theTimelineTrigger);
$($deselectTimelinePositionElement).removeClass('currentPosition');
});
您在第三個DIV選擇器中缺少一個'#',並且這種整個方法非常糟糕。 – adeneo
http://jsfiddle.net/NWmB5/8/ – adeneo
謝謝@adeneo。雖然這段代碼只適用於HTML原型(如果沒有正確的開發人員重寫,大多數情況下不會接近生產),但我想讓它不那麼「可怕」。 我認爲一個明智的做法是將一個公共類應用於所有帶有ID的div,然後放入數組中並使用它來生成數組。我會很感激你可能有任何提示,讓開發人員不那麼冒犯。 –