Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在JQuery.each中使用$(this)_Javascript_Jquery_Css_This_Addclass - Fatal编程技术网

Javascript 在JQuery.each中使用$(this)

Javascript 在JQuery.each中使用$(this),javascript,jquery,css,this,addclass,Javascript,Jquery,Css,This,Addclass,以前从来没有问过这个问题,因为我通常可以通过在这里打猎找到答案,但这让我感到困惑。我并不假装是任何类型的JS/JQ专家,但我对两者都相当熟悉。我试图做的是将预定义的CSS类设置为表单中的一组文本输入元素(不幸的是,我使用的Django版本无法为我做到这一点,而且我目前无法升级,因为我没有时间): } 我没有得到任何错误,但该类只是没有被添加到元素中。我可以更改代码,只需使用名称或ID选择器,但如果可能的话,我更愿意将类应用于对象本身 非常感谢您的帮助 我可以证实这种行为,但我不明白 要解决这个问

以前从来没有问过这个问题,因为我通常可以通过在这里打猎找到答案,但这让我感到困惑。我并不假装是任何类型的JS/JQ专家,但我对两者都相当熟悉。我试图做的是将预定义的CSS类设置为表单中的一组文本输入元素(不幸的是,我使用的Django版本无法为我做到这一点,而且我目前无法升级,因为我没有时间):

}

我没有得到任何错误,但该类只是没有被添加到元素中。我可以更改代码,只需使用名称或ID选择器,但如果可能的话,我更愿意将类应用于对象本身


非常感谢您的帮助

我可以证实这种行为,但我不明白

要解决这个问题,可以避免将jQuery对象转换为数组,而只使用

$(“输入[type='text'],textarea”)。每个(函数(i,字段){
if((this.name!=“csrfmiddlewaretoken”)&&(this.name.indexOf(“recaptcha”)=“1)){
$(this.addClass('someclass');
}
});
看到全部

更新:

问题在于

.serializeArray()
说明:将一组表单元素编码为名称和值的数组。
.serializeArray()方法创建一个对象的JavaScript数组,可以将其编码为JSON字符串

serializeArray()
不创建DOM元素数组,而只创建
名称
/
对数组。所以,
这个
指的是一个对象

{
名称:“其他”,
值:“somevalue”
}

当与
addClass()

一起使用时,它的行为与预期不符。您希望将类添加到dom元素,但使用serializeArray()生成字段数组而不是jq对象选择器。现在看起来很简单!你完全正确。非常感谢您的澄清,让它发挥作用:)
function setBsCss() {
var fields = $("input[type='text'], textarea").serializeArray();
jQuery.each(fields, function(i, field){
    if ((this.name != "csrfmiddlewaretoken") && (this.name.indexOf("recaptcha") == -1)) {
        $(this).addClass('someclass');
    }
});