Jquery 在DOM中检测动态类

Jquery 在DOM中检测动态类,jquery,Jquery,我需要检测由另一个插件生成的类是否存在,然后执行一些代码。我似乎无法让它工作。它还需要在IE8中工作 下面是代码。我正在使用webshims,当出现错误时,它会将class=“user error”添加到选择框中。我需要检测该类是否存在。有人能帮忙吗 <select id="Title" name="Title" required autofocus="autofocus" class=""> <option value="" selected=yes> Titl

我需要检测由另一个插件生成的类是否存在,然后执行一些代码。我似乎无法让它工作。它还需要在IE8中工作

下面是代码。我正在使用webshims,当出现错误时,它会将class=“user error”添加到选择框中。我需要检测该类是否存在。有人能帮忙吗

<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');
});

标题
太太
夫人
var select=$('select');
$(选择).each(函数(){
$(this).hasClass('user-error').css('background','#333');
});

你就快到了。但是你的代码有输入错误

$(此).hasClass('user-error').css('background','#333')
将不起作用,因为
$(此).hasClass('user-error')
将返回布尔值
true
false

尝试:


对于初学者,为什么不直接使用:
$('.user error').css('background','#333')?你的JS看起来不错。也许它是在其他添加类的代码之前执行的?您还可以改进JS:
$(select).filter('.user error').css('background','#333')
@pdoherty926因为OP想要检测它…类是在DOM加载后应用的。@DipeshParmar right-这意味着即使在原始形式下,此代码也必须在onclick、onsubmit等处理程序中运行。@user2696536您还没有回答我的问题。或者干脆
$(select).filter('.user error').css('background','333')
您不需要
$(select)
,因为
select
已经是jQuery对象。它应该是
select.filter…
@Barmar更新的代码指的是
$('select')
,而不是使用单独的变量
var select=$('select')
。您的代码中仍然有打字错误请参阅fiddle中的最新代码。使用
$(this)
,而不是在
focusin
focusout
中更改所有
选择
元素类。您无法确定除了
选择
框之外,该类中没有其他元素。@Itay但OP只是在
$('select')
上迭代,所以其他元素是不相关的。@Barmar这个答案中的原始代码是用这个类处理表单上的每个元素。
$(document).ready(function(){
    $('select').filter('.user-error').css('background','#333');
});
$('form').on('submit', function () {
    $(this).find('select.user-error').css('background','#333');
});