How to check if an element is an array or single
jQuery 1.7.1
Sometimes I have an element as an array,
<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>
The below jQuery code works,
$(".p").each(function(i){
alert($('.p')[i].value);
});
Sometime I have that element as a single element
<tr><td><input type="hidden" class="p" name="it" value="1"/></td></tr>
I want to make sure if the hidden input is an array or a single element before trying to execute the above jQuery code. How can I do that using jQuery?
Actually, that code works fine for both one input and two inputs.
But, use the size
method to check:
if ($(".p").size() > 1) {
$(".p").each(function(i){
alert($(this).value);
});
}
You could check the length
of the set jQuery returns.
var p = $('.p');
if ( p.length == 1 )
// single
else if ( p.length > 1 )
// set
But this, I believe, is not your problem. Your jQuery code should not reload $('.p')
on each iteration. Try this — it'll work with one or multiple matched elements:
$(".p").each(function(){
alert(this.value);
});
The result of a DOM query is always a jQuery object. It cannot be a single element. $(".p").length
will tell you the number of elements in the returned object, which can be 0 if the query matched no objects.
下一篇: 如何检查一个元素是一个数组还是单个元素