3

insertbefore でオプションを挿入しようとすると、このエラーが発生します。キャッチされないエラー: HierarchyRequestError: DOM 例外 3

var target = $('#divA option:selected').prev().first();
    var options = $('#divA option:selected');
    if (options.prev().text() == target.text()) {
        return;
    }
    options.insertBefore(target);

このエラーが発生する場合options.length > 2 は、1 または 2 であれば問題ありません。複数選択すると、選択した項目がすべて消えます。何が問題ですか?私たちを手伝ってくれますか?

サンプル: http://jsfiddle.net/tHVsw/

4

1 に答える 1

5

このエラーは、DOM の特定のポイントへの要素の挿入が許可されていない (つまりif、不可能である) 場合にスローされます。挿入が可能かどうかを確認するステートメントを使用できます。

if ( !target.prev().length ) 
    target.parent().prepend(options);
else 
    target.before(options);

ターゲット要素の前の兄弟の が 0 の場合length、要素を親要素の先頭に追加します。そうでない場合は、ターゲット要素の前に挿入します。

http://jsfiddle.net/fKx68/

于 2013-03-19T09:45:20.443 に答える