簡體   English   中英

如何使用jQuery僅刪除標記?

[英]How to remove only tag using jQuery?

我想用jQuery刪除span,我試過.unwrap(); 但它不起作用。

<div>
<ul>
<li><a href="#"><span>link</span></a></li>
<li><a href="#"><span>link</span></a></li>
</ul>
</div>

顯然, unwrap不起作用,因為span只有文本節點在其中,而jquery不能很好地處理文本節點......但是這有效(如果你是的話,你可以使用jQuery.text而不是jQuery.html確保span只包含文本):

$('li a span').replaceWith($('li a span').html());

工作實例

編輯 :實際上,如果你使用jQuery.contents來解決jquery無法直接選擇文本節點的問題,那么unwrap似乎也可以工作:

$('li a span').contents().unwrap();
$('li').find('span').remove();

要么

$('li').find('span').detach();

如果您只想刪除包裝,請嘗試

var buffer = $('li').find('span').text();
$('li').find('span').parent().html(buffer);

打開應該工作。 您可能無法成功選擇要展開的跨度。 您可以嘗試以下代碼,該代碼應成功選擇該范圍:

$("li a span").unwrap()

從你的問題中有點不清楚你到底想要做什么。 目前還不清楚你是否遇到了選擇器或jquery api的問題。 為了更好地處理jquery的選擇器,我建議你安裝firebugfirequery ,因為它可以真正幫助你理解你所選擇的內容。

$("span").each(function() {
    var content = $(this).text();
    $(this).remove();
    $("a").html(content);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM