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

时间:2012-03-21 02:50:13

标签: 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>

以下jQuery代码有效,

$(".p").each(function(i){
alert($('.p')[i].value);
});

有时我将该元素作为单个元素

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

我想在尝试执行上面的jQuery代码之前确保隐藏的输入是数组还是单个元素。我怎么能用jQuery做到这一点?

3 个答案:

答案 0 :(得分:7)

实际上,一个输入和两个输入的代码works fine

但是,请使用size方法检查:

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

答案 1 :(得分:3)

您可以检查设置jQuery返回的length

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

但我相信,这不是你的问题。您的jQuery代码不应在每次迭代时重新加载$('.p')。试试这个 - 它可以使用一个或多个匹配的元素:

$(".p").each(function(){
    alert(this.value);
});

答案 2 :(得分:1)

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