javascript - 删除跨度标签而不删除内部文本的最佳方法

标签 javascript jquery

我创建了一个函数来隐藏和显示某些字段,问题是标签只是 td 内的文本,并应用了标签 ID,例如解析类型_c_标签。我无法隐藏 td 本身,因为它破坏了表格布局,所以我用 innerwrap 隐藏文本。当我想显示字段时,最好删除跨度标签而不删除文本。

$(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();
    });

});

最佳答案

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

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

.wrap()将 HTML 结构包裹在匹配元素集中的每个元素周围。

由@Spokey 对帖子的评论提供

$('span').contents().unwrap();

关于javascript - 删除跨度标签而不删除内部文本的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19226288/

相关文章:

jquery - 如何在指令中使用 $timeout 服务?

javascript - 如果选中复选框,文本框将计算

javascript - Jquery - 日期选择器日期

javascript - 使用 THREE.Points() 时出现 TypeError : can't convert undefined to object in Three. js

javascript - 互动问答游戏 - 如何使每个玩家的游戏计时相同

javascript - 如何在 JavaScript/jQuery 中捕获表单提交操作?

jquery - 使用 HTML5 视频标签退出全屏

javascript - 加载 gif 加载时间过长

javascript - 具有特定变量的唯一 ID,以便使用该变量调用数组中的函数

javascript - 在 JavaScript API for Office 中使用 promise (ctx.sync) 编写循环的最佳方式