2015-11-12 4 views
0

В моем нижнем углу console.log срабатывает, поэтому оператор if определенно проходит. Если я попробую console.log() CSS $(this) Я получаю undefined. Я сделал console.log($this), и он возвращает объект с внешним HTML <span class="formState"></span>. У меня было несколько друзей, которые смотрели на это и провели много исследований, но придумали короткий.Невозможно изменить CSS-интервал с помощью jQuery

<span class="formState"><?php echo $IRFormResults[$count];$count++ ?></span> 
$(".formState").each(function() { 
    if ($(this).text() == 'n/a') { 
     console.log('Got an n/a'); 
     $(this).css('color:red'); 
    } 
.formState { 
    color: green; 
    display: inline-block; 
    min-width: 125px; 
    margin-left: 10px; 
    float:right; 
} 

ответ

5

Ваш синтаксис не совсем верно. Метод css() принимает два параметра; свойство CSS и его значение:

$(this).css('color', 'red'); 

Также обратите внимание, что вы можете изменить свою логику, чтобы использовать filter(), а также для trim() текст элемента, чтобы сохранить пробельные вызывая проблемы:

$(".formState").filter(function() { 
    return $(this).text().toLower().trim() == 'n/a'; 
}).css('color', 'red'); 
+0

Хорошо, вы совершенно правы. Спасибо. Хотя, как бы я подошел к распечатке своего существующего css? Просто хочу, чтобы я этого хотел. – dyllandry

+0

На самом деле довольно сложно получить все CSS-правила для элемента, потому что у вас есть сотни настроек по умолчанию, применяемых браузером, прежде чем вы сами ставите любой стиль. См. [Этот ответ] (http://stackoverflow.com/questions/754607/can-jquery-get-all-css-styles-associated-with-an-element) для более подробной информации. –

1

You следует изменить следующим образом:

$(this).css('color:red'); 

Для этого:

$(this).css('color','red'); 
0

Либо

$(this).css('color','red');

или

$(this).css({'color':'red'});

Смежные вопросы