2013-09-14 2 views
2

Мне нужно определить, существует ли класс, созданный другим плагином, а затем выполнить некоторый код. Кажется, я не могу заставить его работать. Он также должен работать в IE8.Обнаружение динамического класса в DOM

Ниже приведен код. Я использую webshims, который добавляет class = "user-error" в поле select при возникновении ошибки. Мне нужно обнаружить, что этот класс существует. Может ли кто-нибудь помочь?

<select id="Title" name="Title" required autofocus="autofocus" class=""> 
    <option value="" selected=yes> Title </option> 
    <option value="Ms" > Ms </option> 
      <option value="Mrs" > Mrs </option> 
</select> 

var select = $('select'); 

$(select).each(function(){ 
    $(this).hasClass('user-error').css('background','#333'); 
}); 
+1

Для начала, почему бы не просто использовать:. '$ ('Пользователя ошибка ') CSS (' фон',» # 333'); '? – pdoherty926

+0

Разве это не работает ..? –

+0

Ваш JS выглядит хорошо. Может быть, он выполняется перед другим кодом, который добавляет классы? И вы можете улучшить свой JS: '$ (select) .filter ('. User-error'). Css ('background', '# 333');' – Itay

ответ

1

Вы почти находитесь. Но у вас есть опечатка в коде.

$(this).hasClass('user-error').css('background','#333') не будет работать, потому что $(this).hasClass('user-error') вернет логическое значение true или false.

Try:

$(document).ready(function(){ 
    $('select').filter('.user-error').css('background','#333'); 
}); 

DEMO FIDDLE

+2

Или просто '$ (выберите) .filter ('. User-error'). Css ('background', '# 333');' – Itay

+1

@Itay. Удивительно, спасибо. :) – Unknown

+0

Вам не нужно '$ (select)', так как 'select' уже является объектом jQuery. Это должно быть просто 'select.filter ...'. – Barmar

0
$('form').on('submit', function() { 
    $(this).find('select.user-error').css('background','#333'); 
}); 
+1

Вы не можете быть уверены, что в этом классе нет других элементов, кроме полей 'select'. – Itay

+0

@Itay Но OP выполняет только итерацию над '$ ('select')', поэтому другие элементы не имеют значения. – Barmar

+0

@Barmar исходный код в этом ответе должен был обрабатывать каждый элемент этого класса в форме. – Itay

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