2013-10-08 3 views
0

Привет Я хочу удалить родительские и дочерние теги <span>. Как я могу это сделатьКак удалить <span> тег в jquery?

<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(); 
Смежные вопросы