我有UL
列表和代碼選擇所選的LI
元素(https://stackoverflow.com/a/8883690/106616)的所有父母。現在,我想在選擇其他LI元素時清除選擇。 爲此,我創建了該代碼:jQuery - 奇怪的功能行爲
(簡單地說,在選擇新路徑之前,我遍歷數組以清除之前的選擇,然後清除數組,並選擇新路徑時添加新的物品到該陣列)
$('#nav li').click(function() {
//clear the previous selection
$.each(myArray, function (i, v) {
console.log('loop: ' + v);
$('#nav li a[href="' + v + '"]').css('background-color', 'Green');
});
myArray.lenght = 0;
//add the new selection
$(this).children('a').each(function (item) {
myArray.push($(this).attr('href'));
console.log('adding: ' + $(this).attr('href'));
$(this).css('background-color', 'Red');
});
});
但是,如果我選擇第一個路徑,該代碼會生成該輸出。
加入:#/ 1210
循環:#/ 1210
加入:#/ 1209
循環:#/ 1210
循環:#/ 1209
加入:#/ 1208
如果我選擇例如第二路徑,輸出是:
循環:#/ 1210
循環:#/ 1209
循環:#/ 1208
加入:#/ 1188
環:#/ 1210
loop:#/ 1209
循環:#/ 1208
循環:#/ 1188
加入:#/ 1187
我覺得輸出應爲(第2路徑選擇)
循環: #/ 1210
循環:#/ 1209
循環:#/ 1208
加入:#/ 1188
加入:#/ 1187
有人可以解釋這對我?
到底是什麼問題?我看到的唯一一個是'myArray.lenght = 0;'''長度'拼寫錯誤。 – Dennis 2012-01-16 19:15:29
而不是改變實際路徑的背景爲紅色,只有最差的(最頂部)元素是紅色的,其他綠色 – Tony 2012-01-16 19:18:13