-1

この機能は、サムネイル画像がクリックされたときに発生します。これは、サムネイルのIDを使用して、画像とテキストを保持するdiv( "item" + f)のIDを取得し、それを"display"divに貼り付けます。

問題は、クリックするたびに表示divをクリアして、1つのdivのみが表示されるようにしたいのですが、'appendChild'sを使用してそれを行うのに問題があります(innerHTMLを使用するよりも推奨されると言われています)。以下の私の現在の解決策は、表示divにあるものを取得し、それを非表示のdivに追加して、後で再び使用できるようにすることですが、うまくいかないようです。

displayimageとremoveimageは、移動しているdivを保持するために使用しているdivです...これは意味がないようですが、うまく機能しているようです。私のプロセスや「appendChild」の使い方に問題があることがわかったら、それが役に立ちます。

function thumbclick(clickedimage) {
var f = clickedimage.charAt(clickedimage.length - 1);
displayimage = document.getElementById("item"+f);
removeimage = document.getElementById("display").getElementsByTagName("div")[0];
document.getElementById("galleryimages").appendChild(removeimage);
document.getElementById("display").appendChild(displayimage);
}

「UncaughtError:NOT_FOUND_ERR:DOM Exception 8」がよく発生します。これを調べたところ、正しいタイプの要素を追加していないようです...しかし、divをdivに追加しているだけですか?

編集:十分な詳細を投稿していないことをお詫びします。コメントのCNKanodeに問題があるようです。表示divが空で始まり、削除するものがありません。ありがとう!

4

1 に答える 1

-2

次のコードは、jQueryのみを使用して、あなたのコードと同じ効果をもたらすはずです。これは、DOMの操作に問題がないことは確かです。

function thumbclick(clickedimage) {
    var f = clickedimage.charAt(clickedimage.length - 1);
    var removeimage = $('#display div');
    $('#galleryimages').append(removeimage);
    removeimage.remove();
    $('#display div').append($('item'+f));
}​

<head>編集: jQueryを機能させるには、これをhtmlに含める必要があります。

<script src="http://code.jquery.com/jquery-latest.js"></script>
于 2012-12-26T16:04:48.093 に答える