2009-09-29 28 views
3

我有此位的HTML代碼:如何「解開」標籤?

<center><table><tr><td>table</td></tr></table></center> 

我怎樣才能解開表從<center>

對不起,林不知道,甚至如何下手。

非常感謝

+0

我不確定你的問題是什麼? – 2009-09-29 11:36:24

+0

「解開」是什麼意思?提取文本? – NawaMan 2009-09-29 11:38:20

+0

你的意思是刪除'

'標籤,讓孩子的內容保持完好? – 2009-09-29 11:54:26

回答

3

該功能的工作就好了;

jQuery.fn.unwrap = function (el) { 
    return this.each(function(){ 
     $(this.childNodes).appendTo(this.parentNode); 
    }); 
}; 
5

我寧願要完全擺脫中心標籤或一些DIV替換它。中心標籤不包裹任何東西。有任何想法嗎?

它沒有被包裹在任何東西?然後將它包裹在某物當中!

var $center = $('center'); 
var $newReplacement = $("<div></div>"); 

$center.wrap($newReplacement); 
$newReplacement.html($center.html()); 

或者:

var $center = $("center"); 
$("<div></div>") 
    .insertBefore($center) 
    .html($center.html()) 
; 
$center.remove(); 

再次,但這次不失事件:

var $contents = $("center > *") 
    .clone(true) // not sure if this is needed 
    .appendTo(
     $("<div></div>").insertBefore("center") 
    ) 
; 
$("center").remove(); 
+0

我喜歡第二個更好 - 但你不需要將新的DIV分配給一個變量。 – tvanfosson 2009-09-29 11:55:35

+1

通過使用html(),你將失去事件等 – svinto 2009-09-29 11:56:16

3
var $table = $("center table"); 
var $center = $table.parent(); 
$table.insertBefore($center); 
$center.remove(); 
+0

這個解決方案比改變HTML或像nickf這樣的克隆工具的速度要快 – jantimon 2009-10-15 10:25:17

1

爲了避免新的變量或函數,我通常會「解包」是這樣的:

$("center").each(function(){ 
     $(this).replaceWith($(this).html()); 
    }); 

我打電話。每次與annonymous功能得到$(本)

手柄

在你的情況,如果你有你的頁面上有多箇中心的標籤,你也想標記要與id屬性拆卸和像這樣選擇它的一個:

$("#zapthis").each(...