Использование each()
:
var displays = '';
$("p").each(function(i, val) {
displays += "Paragraph " + i + ": " + $(this).css("display") + "\n";
});
alert(displays);
Причина, по которой это не удается:
var target = $("p");
var display = target[0].css("display");
означает, что target[0]
является , а не объектом jQuery. Вы можете сделать это:
var display = $(target[0]).css("display");
Также, если вы прочитали документацию для css()
:
Возвращает свойство стиля на первом
согласованный элемент.
Два других момента, о которых стоит упомянуть.
Во-первых, я бы не советовал делать подсказку самостоятельно. Получите один из многих плагинов для этого. Я использовал этот ранее, и он сделал свою работу.
Во-вторых, если вы проверяете значения отображения CSS, возможно, стоит использовать ярлык. Например, вы можете сделать это:
$("p").each(function() {
if ($(this).css("display") == "none") {
$(this).addClass("blah");
}
});
, но вы также можете использовать селекторы :hidden
и :visible
, поэтому:
$("p:hidden").addClass("blah");
Проверка значений вызовов css()
в значительной степени ненадежна, поскольку вы проверяете только встроенные стили, а не значения таблицы стилей.