显示元素部分但隐藏其余部分的好方法是什么?

时间:2013-08-29 20:56:10

标签: javascript jquery

我想要一个javascript(jQuery)函数来删除所有没有safe类的东西。

问题是,如果父元素被隐藏,它就无法显示它的“安全”部分。

有一种简单的方法来解决这个问题吗?我宁愿不进入span所有需要删除的元素。

trimmer = function(element){
    x = $(element+' *:not(.safe)');
    x.hide();   
}
trimmer('section');

Fiddle

2 个答案:

答案 0 :(得分:0)

var element = 'section';

//finds all non `.safe` elements in `section`s and hides them
$(':not(.safe)', element).hide();  

//finds all `.safe` elements in `section`s and shows the `section`s
$('.safe', element).parents(element).show();  

答案 1 :(得分:0)

霍伦是对的,显然不可能显示隐藏元素的一部分。

要使文本的某些部分消失,必须标记非safe内容以供删除。

$(element).contents().each(function() {
  if (this.nodeType == 3)
    $(this).wrap('<span class="disappear" />');
});

您可以在此处详细了解此答案: How to add spans to all areas of a node that isn't restricted