私はUL
リストと、選択されたLI
要素(https://stackoverflow.com/a/8883690/106616)のすべての親を選択するコードを持っています。今、私は他のLI要素を選択するときに選択をクリアしたいです。jQuery - strange関数の動作
(単純に、新しいパスを選択する前に、以前の選択を消去するためにアレイを繰り返した後、新しいパスを選択して、新しいパスを選択します)その配列へのアイテム)
$('#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
たとえば、第2経路は、出力は次のとおり
ループ#/ 1210
ループ#/ 1209
ループ#/ 1208
追加#/ 1188
ループ:#/ 1210
ループ:#/ 1209
ループ#/ 1208
ループ#/ 1188
追加#/ Iが出力されるべきだと思う1187
(第2経路選択)
ループ。 #/ 1210
ループ:#/ 1209
ループ:#/ 1208
追加:#/
1188が追加:#/
1187は、誰かが私のためにこれを説明できますか?
問題であり、正確には何?私が見る唯一のものは、 'myArray.lenght = 0;'の長さが間違っているということです。 – Dennis
実際のパスの背景を赤に変更するのではなく、forst(最上部)の要素だけが赤で、他は緑色です – Tony