Прямо сейчас вы используете таргетинг только на элемент <html>
с помощью вашего селектора. Вы должны перебрать все элементы и проверить их видимость, как это:
$('*').each(function(){
if($(this).not(':visible')){
$(this).remove();
}
});
Еще более кратким было бы просто предназначаться скрытые элементы и удалить их, как например:
$('*:hidden').remove();
JQuery API ссылки состояния что элементы считаются видимыми, если они занимают место в документе. Поэтому элементы, имеющие высоту и ширину больше 0, считаются видимыми. Это означает, что мы должны вместо этого взглянуть на вычисленный CSS, если у вас возникли проблемы с указанным выше кодом, удалив видимые вещи.
$('*').each(function(){
if($(this).css('visibility') == 'hidden' || $(this).css('display') == 'none'){
$(this).remove()
}
});
Это тоже слишком много удаляет. – karianneberg
Элементы, которые имеют стиль 'display: none;', отличаются от элементов, которые имеют видимость: hidden. Можете ли вы уточнить, на что вы нацеливаетесь? Оба пользователя не видны, но они нацелены по-разному с jQuery. –
Мне нужно удалить все, что не видно пользователю, так что «display: none» и «visibility: hidden». Насколько я вышел из [JQuery docs on hidden] (https://api.jquery.com/hidden-selector/), он заботится только о первом случае. Но теперь проблема заключается в том, что она удаляет вещи, которые не являются «скрытыми», а «display: none» – karianneberg