2013-10-08 60 views
0

嗨我想删除<span>的父母和孩子的标签。我怎样才能做到这一点如何删除jQuery中的<span>标签?

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

当我打电话deleteDept()我想删除总<span>(父母和子女)

任何一个可以帮助我

回答

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(); 
} 

演示:Fiddle

但是!因为你使用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(); 
    }) 
}) 

演示的:Fiddle

0
$('span').on("click", function() { 
    $(this).parent().remove(); 
}); 
0

为了唯一目标具体的元素,你只需要编写更具体的选择器。
例如,如果你想只瞄准一个div内跨越,做,而不是

$("div span") 

$("span"); 

的jQuery 1.4有一个新的.unwrap()方法,这将是这个应用非常有用的。

试试这个

$("div span font").contents().unwrap().unwrap();