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做到这一点?
答案 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。