Я использовал функцию в фильтре, чтобы проверить, является ли режим отображения блочным, но он не работает.

Вот мой код:

$("#wrap_element").find("*").filter(function(){
    return this.css("display")==="block";
}).css("background-color","red");

Спасибо.

1
user12026752 30 Окт 2019 в 21:22
Пожалуйста, пройдите экскурсию, чтобы вы знали, как работает этот сайт.
 – 
isherwood
31 Окт 2019 в 16:15

1 ответ

У вас есть консольная ошибка, которая намекает на проблему:

Uncaught TypeError: this.css не является функцией

Вам нужно использовать объект jQuery, так как вы вызываете для него метод jQuery:

return $(this).css("display")==="block";
// ----^^----^

Демо

4
isherwood 30 Окт 2019 в 22:15
Это правильно. Чтобы использовать функцию jQuery, такую ​​как css(), вам сначала нужен объект jQuery. this сам по себе не является объектом jQuery. Если вы вызываете $(this), вы возвращаете объект jQuery, который имеет такие функции, как css() в своем прототипе.
 – 
Spencer Stewart
30 Окт 2019 в 21:32