0

嗨,我想删除<span>. 我怎样才能做到这一点

<span id='dept1'>
Department
<span onClick='deleteDept();'>X</span>
</span>
<span id='dept2'>
Department2
<span onClick='deleteDept();'>X</span>
</span>

当我调用 deleteDept() 时,我想删除总计<span>(父母和孩子)

任何人帮助我

4

3 回答 3

5

您需要将单击的元素传递给该deleteDept方法,然后在其父元素上调用.remove()方法

<span id='dept1'>
    Department
    <span onClick='deleteDept(this);'>X</span>
</span>
<span id='dept2'>
    Department2
    <span onClick='deleteDept(this);'>X</span>
</span>

然后在 deleteDept()

function deleteDept(el) {
    //something else
    $(el).parent().remove();
}

演示:小提琴

但!!!由于您使用的是 jQuery,因此推荐的解决方案是使用 jQuery 事件处理程序而不是内联事件处理程序

<span id='dept1'>
    Department
    <span class="dept-remove">X</span>
</span>
<span id='dept2'>
    Department2
    <span class="dept-remove">X</span>
</span>

然后

jQuery(function ($) {
    $('.dept-remove').click(function () {
        $(this).parent().remove();
    })
})

演示:小提琴

于 2013-10-08T06:17:28.950 回答
0
$('span').on("click", function() {
    $(this).parent().remove();
});
于 2013-10-08T06:19:15.737 回答
0

为了只针对特定元素,您只需要编写更具体的选择器。
例如,如果您只想定位 div 内的跨度,请执行

$("div span")

代替

$("span");

jQuery 1.4 有一个.unwrap()对这个应用程序非常有用的新方法。

尝试这个

$("div span font").contents().unwrap().unwrap();
于 2013-10-08T06:25:50.027 回答