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