0

次のコードを検討してください。

$(".lcontainer a").click(function () {
    var current = $(this);
    var name = current.attr('href');
    document.getElementsByName('source')[0].value = name;
    var fPicture = "css/imgs/Flash.png";
    //If image is wrapped in link unwrap it
    var newLink = $('<a/>').attr('href', name);
    newLink.find('#prev').unwrap();
    if (extension == "jpg" || extension == "png" || extension == "gif" || extension == "bmp") {
        $(".mainCategory").html("Picture");
        document.getElementById('prev').src = name;
    }
    else if (extension == "swf") {
        $(".mainCategory").html("Game");
        document.getElementById('prev').src = fPicture;
        previewImage.wrap(newLink);
    }
    return false;
});
});

ロジックは単純です。swfファイルがある場合は、フラッシュシンボルを配置し、このファイルを指すリンクでシンボルをラップします。問題:別のリンクをクリックすると、シンボルがアンラップされません。

4

1 に答える 1

1

次のものを使用して新しいリンク要素を作成しています。

var newLink = $('<a/>').attr('href', name);

...したがって、この:

newLink.find('#prev').unwrap();

... にはnewLinkまだ何も入っていないため、何も見つかりません。

このようなことをしたくないと確信していますか?

$('#prev').unwrap();
var newLink = $('<a/>').attr('href', name);
于 2011-07-31T13:29:57.483 に答える