jquery on事件删除除span之外的所有标记

jquery on event remove all tags except span

本文关键字:事件 on 删除 span jquery      更新时间:2023-12-05

我正在寻找一个与完全相似的函数

$str = striptags($str, 'span');

在PHP中。我需要jquery中相同类型的函数:

$("#str").on('click keydown keyup change keypress', function(e) {
e.preventDefault();
???
)};

它像PHP一样简单吗?还是更复杂的事情?

试试这个jQuery:

$('#str').on('click', function(e) {
    $('body').find('*').not('span').each(function() {
        $(this).remove();
    });
});

您必须将其目标调整为您想要清除其内容的任何父对象,但这应该有效。

编辑

我已经更新了它,以说明元素是否包含在跨度中,在某个时刻:

$('#str').on('click', function(e) {
    $('body').find('*').not('span').each(function() {
        if(!$(this).parents().is('span')) {
            $(this).remove();
        }
    });
});

如果只想适应单个级别的提升,请在if语句中将parents()替换为parent()

这是一个JSFiddle:http://jsfiddle.net/y1r0wg2r/