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

best way to remove the span tags without removing the inner text

本文关键字:删除 最佳 方法 SPAN 情况下 内部 文本      更新时间:2023-09-26

我创建了一个函数来隐藏和显示某些字段,问题是标签只是td中的文本,并应用了标签ID,例如resolution_type_c_label。我无法隐藏 td 本身,因为它破坏了表格布局,所以我用内包装隐藏了文本。当我想显示字段时,最好在不删除文本的情况下删除 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();
    });
});
你可以

使用 .unwrap() 和 .wrap()。

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

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

礼貌@Spokey来自他对帖子的评论

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