の下にのように私がしようとしているものの非常に単純な例。項目を上に移動するにはリンク/ボタンを、上に移動するには右にリンク/ボタンを押します。しかし、それは動作していない、と私はエラーを取得しています:この行でjavascript - 上の項目または下の項目を
Object doesnt support this property or method
:ここ
items[counter-1] = curr;// move previous item, to current
例イメージ
は私のコードです:
Javascriptを:
<script type="text/javascript">
function MoveItem(id, direction) {
var ul = document.getElementById('GroupBy');
var items = ul.getElementsByTagName('li');
var counter = 0;
var previousItem = null;
var moveNextItemUp = false;
for (var item in items) {
//if current item, is the one to be moved
if (item == id) {
if (direction == 1) { // item move down
moveNextItemUp = true;
} else if ((direction == -1) || (moveNextItemUp == true)) { // item move up
var curr = items[counter];
var prev = items[counter-1];
items[counter-1] = curr;// move previous item, to current
items[counter] = prev;//move current item, to previous
break;
}
}
previousItem = item;
counter = counter + 1;
}
}
</script>
HTML:
<ul id="GroupBy">
<li id="One">
one<a href="#" onclick="MoveItem('One', 1)"> V </a>
</li>
<li id="Two">
<a href="#" onclick="MoveItem('Two', -1)">^</a>two<a href="#" onclick="MoveItem('Two', 1)"> V </a>
</li>
<li id="Three">
<a href="#" onclick="MoveItem('Three', -1)">^</a>three<a href="#" onclick="MoveItem('Three', 1)"> V </a>
</li>
<li id="Four">
<a href="#" onclick="MoveItem('Four', -1)">^</a>four
</li>
</ul>
for-inループをコメントアウトし、forループとitem [i] .parentNodeコード行(ループ内)を入れました。しかし、リンクボタンの1つをクリックすると、「無効な引数」のJavaScriptエラーが表示されます。 – Adam
@Adam:完全なソリューションでアップデートします。 – user113716
ありがとう=]私は非常に感謝します!私は何かを見て、私が行くようにそれを把握することができます...しかし、私はこの4時間レンガの壁に走ってきました... – Adam