0

こんにちはコーダー私は次のスクリプトを持っています:http://jsfiddle.net/UqDJk/241/

moveUp関数でリストを1つ上に移動したい。

var moveUp = function (up, direction) {
  var btn = up.target,
    li = btn.parentNode;

  li.insertBefore(li[1].nextSibling)
}

これを行う簡単な方法はありますか?追伸は純粋なJavaScriptをお願いします。

4

1 に答える 1

3

私はあなたが欲しいと思います:

li.parentNode.insertBefore(li, li.previousSibling);

ただし、これは最初の要素に適用li.previousSiblingされることに注意してください。この場合、リストに追加されます。したがって、最初の要素を移動しないようにチェックを追加する必要があります。null

if (li.previsousSibling) {
    li.parentNode.insertBefore(li, li.previousSibling);
}

コードの問題:

  • DOM操作メソッドは常に(?)ノード自体ではなく、親ノードで機能します。メソッドがどのように機能するか正確にわからない場合は、MDNを検索してください(例:google for)mdn insertBefore
  • li[1]DOM要素オブジェクトであるため存在しないのプロパティにアクセスしようとし1ます。lili
于 2013-01-17T10:00:28.267 に答える