在不删除内部文本的情况下删除span标记的最佳方法

时间:2013-10-07 13:33:02

标签: javascript jquery

我创建了一个隐藏和显示某些字段的函数,问题是标签只是应用了标签ID的td内的文本,例如resolution_type_c_label。我不能隐藏td本身因为它打破了表格布局所以我用innerwrap隐藏文本。当我想显示字段时,删除文本时最好删除span标记。

$(document).ready(function(){
    hide();

    function hide(){
        if($('#status').val() != 'Resolved') {

            $('#resolution_type_c').hide();
            $('#resolution_type_c_label').wrapInner('<span id="wrap1" style="display:none"></style>');

            $('#resolution_sub_c_label').wrapInner('<span id="wrap2" style="display:none"></style>');
            $('#resolution_sub_c').hide();

            $('#resolution_label').wrapInner('<span id="wrap3" style="display:none"></style>');
            $('#resolution').hide();
        }
        else {
            $('#resolution_type_c').show();
            $('#resolution_sub_c').show();
            $('#resolution').show();
        }

    } */

    $('#status').on('change', function() {
        hide();
    });

});

1 个答案:

答案 0 :(得分:3)

您可以使用.unwrap().wrap()

.unwrap()从DOM中删除匹配元素集的父元素,将匹配的元素保留在原位。

.wrap()围绕匹配元素集中的每个元素包装HTML结构。

来自@Spokey的帖子

的评论提供了礼貌
$('span').contents().unwrap();