jQuery insertBefore,insertAfter问题

时间:2010-06-22 09:08:25

标签: jquery

我想在jQuery的帮助下将我的图像作为链接:

 $("img:gt(0)").each(function () {
            var curr = $(this);
            if (curr.width() >= 500) {
                var m = 500 / curr.width();
                curr.height(curr.height() * m);
                curr.width(curr.width() * m);
            }
            $("<a href='" + curr.attr("src") + "'>").insertBefore(curr);
            $("</a>").insertAfter(curr);
        });

但我得到了:

<a href="/Images/7827-1280x800.jpg"></a>
<img height="800" width="1280" src="/Images/7827-1280x800.jpg" alt="" style="height: 312.5px; width: 500px;">

而不是:

<a href="/Images/7827-1280x800.jpg">
<img height="800" width="1280" src="/Images/7827-1280x800.jpg" alt="" style="height: 312.5px; width: 500px;">
</a>

3 个答案:

答案 0 :(得分:2)

你不必这样做。您可以使用wrap执行此操作。

这样的东西
curr.wrap("<a href='" + curr.attr("src") + "' />");

答案 1 :(得分:1)

您可以使用jQuery提供的wrap()方法

$("img:gt(0)").each(function () {
    var curr = $(this);
    if (curr.width() >= 500) {
        var m = 500 / curr.width();
        curr.height(curr.height() * m);
        curr.width(curr.width() * m);
    }
    curr.wrap($('<a href="' + curr.attr("src") + '">'));
});

答案 2 :(得分:1)

这是因为$("<a href='" + curr.attr("src") + "'>")会创建一个常见的html元素。我认为,jQuery会忽略丢失的结束标记并创建此html:<a href="/Images/7827-1280x800.jpg"></a>$("</a>")将被忽略。