如何“解开”标签?

时间:2009-09-29 11:34:51

标签: jquery

我有一些HTML代码:

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

如何从<center>

解包表格

对不起,我甚至不确定如何开始。

非常感谢

4 个答案:

答案 0 :(得分: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();

答案 1 :(得分:3)

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

答案 2 :(得分:3)

这个功能工作正常;

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

答案 3 :(得分:1)

为了避免使用新的变量或函数,我通常会像这样“展开”:

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

我使用匿名函数调用.each来获取$(this)

的句柄

在您的情况下,如果您的网页上有多个中心标记,您还需要使用id属性标记要删除的标记,并使用以下内容选择它:

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