Javascript jquery addclass错误
我对jQuery有一个小问题:Javascript jquery addclass错误,javascript,jquery,Javascript,Jquery,我对jQuery有一个小问题: $('#form-submit').click(function () { $('#textarea, #name').removeClass('error-state').addClass('normal-state'); var myName = $('#name').val(); var myContent = $('#textarea').val(); if ( myContent == '' || myName ==
$('#form-submit').click(function () {
$('#textarea, #name').removeClass('error-state').addClass('normal-state');
var myName = $('#name').val();
var myContent = $('#textarea').val();
if ( myContent == '' || myName == '')
{
$('#textarea, #name').removeClass('normal-state').addClass('error-state');
return false;
}
[more code here]
});
此代码适用于#textarea
,但不适用于#name
,我已检查并重新检查,没有发现错误
但是,如果我们加上:
$('#name').val('some value');
前返回false代码>更改值,但CSS类仍然相同
有什么想法吗?试试:
$('#form-submit').click(function () {
var arrJEls = $('#textarea, #name');
arrJEls.each(function(i){
//See what happens with each element:
console.log($(this));
$(this).removeClass('error-state').addClass('normal-state');
});
var myName = $('#name').val();
var myContent = $('#textarea').val();
if ( myContent == '' || myName == '')
{
arrJEls.each(function(i){
//See what happens with each element:
console.log($(this));
$(this).removeClass('normal-state').addClass('error-state');
});
return false;
}
[more code here]
});
您的代码应该可以正常工作-
我希望您知道ID是一次性使用的,只应用于一个元素看不出您的代码有任何错误。考虑创建一个演示。给我们看一些HTML,这样我们就可以知道你是否有你的选择的问题。你能给我们看一下“名字”的HTML吗?你在添加/移除的类没有在特定的元素类型中被定义在样式表中。是吗?jQuery的好处是不必迭代每个元素来应用某些函数。如果OP的代码不起作用,这也不会起作用。我不认为.each()
函数是必需的,如果在arrJEls
变量上调用.removeClass(…).addClass(…)
,它将影响这两个元素。但是,最好将选择器缓存在变量中,因为它们可以多次访问。我忘记了在每个元素中添加console.log()。是的,我尝试过:console.info($('#name').hasClass('error-state');我在控制台上实现了,但css样式仍然没有渲染:(您是否尝试过将ID更改为其他内容?我怀疑ID名为“name”有时会导致问题