jQuery-如何检查元素是数组还是单个

jQuery-如何检查元素是数组还是单个,jquery,Jquery,jQuery 1.7.1 有时我将一个元素作为数组 <tr><td><input type="hidden" class="p" name="it" value="1"/></td></tr> <tr><td><input type="hidden" class="p" name="it" value="2"/></td></tr> 有时我把那个元素作为一个元素 <tr

jQuery 1.7.1

有时我将一个元素作为数组

<tr><td><input type="hidden" class="p" name="it" value="1"/></td></tr>
<tr><td><input type="hidden" class="p" name="it" value="2"/></td></tr>
有时我把那个元素作为一个元素

<tr><td><input type="hidden" class="p" name="it" value="1"/></td></tr>


在执行上述jQuery代码之前,我想确定隐藏的输入是数组还是单个元素。如何使用jQuery实现这一点?

您可以检查设置jQuery返回的
长度

var p = $('.p');
if ( p.length == 1 )
    // single
else if ( p.length > 1 )
    // set

但我相信这不是你的问题。jQuery代码不应在每次迭代中重新加载
$('.p')
。试试这个-它将与一个或多个匹配的元素一起工作:

$(".p").each(function(){
    alert(this.value);
});
实际上,该代码同时适用于一个输入和两个输入

但是,使用
size
方法检查:

if ($(".p").size() > 1) {
    $(".p").each(function(i){
        alert($(this).value);
    });
}

DOM查询的结果始终是jQuery对象。它不能是单个元素
$(“.p”)。length
将告诉您返回对象中的元素数,如果查询不匹配任何对象,则返回对象中的元素数可以为0。

我可以向您指出:“@DavidThomas我以前看过,但我正在寻找一种jQuery方法。谢谢汉斯·恩格尔。你的回答解决了我的问题。事实上,所有其他的回复都很有用。谢谢你告诉我代码是正确的。我仔细检查了我的原始代码,发现我有$('.a')[I],而不是$('.a')[I].value。作为参考,我有许多输入类型的隐藏数组元素,如$('.p')、$('.a')等。为了便于理解,我简化了我的问题。
if ($(".p").size() > 1) {
    $(".p").each(function(i){
        alert($(this).value);
    });
}