Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.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元素迭代上下文选择器_Javascript_Jquery_Html_Dom_Iteration - Fatal编程技术网

Javascript jQuery元素迭代上下文选择器

Javascript jQuery元素迭代上下文选择器,javascript,jquery,html,dom,iteration,Javascript,Jquery,Html,Dom,Iteration,我正在jQuery中创建表单验证,但是我有一些问题 首先,我迭代所有待验证的元素,并将它们推送到一个数组中(我已经尝试了以下所有方法): 然后,在最后我对这些项目进行了迭代,并希望添加一条错误消息 for(var i = 0; i < errorfields.length; i++){ 1. var parent = errorfields[i]; 2. var parent = $(errorfields[i]); 3. var parent = $("#" + errorf

我正在jQuery中创建表单验证,但是我有一些问题

首先,我迭代所有待验证的元素,并将它们推送到一个数组中(我已经尝试了以下所有方法):

然后,在最后我对这些项目进行了迭代,并希望添加一条错误消息

for(var i = 0; i < errorfields.length; i++){
  1. var parent = errorfields[i];
  2. var parent = $(errorfields[i]);
  3. var parent = $("#" + errorfields[i]);
}
它将返回带有上下文和选择器的数组。有什么问题吗


顺便说一下,我无法在此对象上执行jquery函数。这就是重点,因为我想添加一个2px红色边框和一个$(parent).after(“错误消息”)

我想这对你应该有用

errorfields.push( $("#name")[0] );
//Get the html element rather than the jQuery element (an object).
然后在for循环中,应该有如下内容:

var parent = $( errorfields[i] );
//This will get you the jQuery element again.
$(“#name”)
肯定会返回一个包含所有方法的jQuery对象。在你的日志中,我想你只注意到了属性。如果您查找原型链,您将看到所有的
$.fn
方法。如果
#name
不存在,则长度将为
0

如果要将jQuery对象转换为数组,则应使用或

或:


[,context:#document,selector:#name”]
是元素的jQuery对象。使用起来更快更方便[0]@Sam你说的是通过索引获取单个元素。我说的是将整个对象转换为数组。这会给我一个HTML对象,但当我试图用
$()
包装它以对其进行操作时,不是返回一个可以修改的对象,而是返回一个我无法使用或操作的
[,context:://code>。您需要做的就是
$(errorFields[I])。addClass('error'))
console.log($("#name"));
errorfields.push( $("#name")[0] );
//Get the html element rather than the jQuery element (an object).
var parent = $( errorfields[i] );
//This will get you the jQuery element again.
var array = $('.example').get();
var array = [].slice.call( $('.example') );