包装/解包过程中的jQuery问题

时间:2011-07-31 13:08:50

标签: javascript jquery html wrapper unwrap

请考虑以下代码:

$(".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文件放置flash符号并用指向该文件的链接包装符号。问题:单击另一个链接,符号未解包。

1 个答案:

答案 0 :(得分:1)

您正在创建一个新的链接元素:

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

...所以这个:

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

...找不到任何内容,因为newLink内部没有任何内容。

你确定你不想做这样的事吗?

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