一尘不染

jQuery:用A锚标签包装图像标签的最简单方法

css

这是我的问题的简化版本。

我有两个按钮和一个图像。图像代码是这样的

<img class="onoff" src="image.jpg">

当我按下一个按钮时,我希望图像被包裹在一个A标签中,例如

<a href="link.html">
<img class="onoff" src="image.jpg">
</a>

当我按下另一个按钮时,应该删除A标签。

用jQuery做到这一点最简单的方法是什么?


阅读 386

收藏
2020-05-16

共1个答案

一尘不染

您已经有很多答案,但是(至少在我开始撰写之前)它们都无法正常工作。

他们没有考虑到,你应该 换行<img>多个<a>标签。此外, 如果未 包装, 请勿
尝试拆开包装!您将销毁DOM。

此代码简单地在包装或展开之前进行了验证:

$(function(){
    var wrapped = false;
    var original = $(".onoff");

    $("#button1").click(function(){
        if (!wrapped) {
            wrapped = true;
            $(".onoff").wrap("<a href=\"link.html\"></a>");
        }
    });

    $("#button2").click(function(){
        if (wrapped) {
            wrapped = false;
            $(".onoff").parent().replaceWith(original);
        }
    });
});

祝好运!

2020-05-16