Javascript jquery addclass错误

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 ==

我对jQuery有一个小问题:

$('#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”有时会导致问题