2010-12-14 116 views

回答

6

if()测试将始终评估true。您应该使用if()中的length属性。

var uform = $('#umi-form'); 
if(uform.length) { 
    var inputs = uform.find('input'); 
} 

如果你希望得到一个nodeList,而不是一个jQuery对象,这样做:第一

var uform = $('#umi-form'); 
if(uform[0]) { 
    var inputs = uform[0].getElementsByTagName('input'); 
} 
11

这是可以做到这样的:

var $inputs = $('#umi-form input'); 
1

的JavaScript ...

document.getElementsByTagName('input'); 

会得到所有的input S IN document“page”)。虽然

document.getElementById('umi-form').getElementsByTagName('input'); 

会得到所有的input S IN #umi-form

在这种情况下,getElementsByTagName的调用位于元素之前的期间。如果我们在document上调用它,我们将获得页面上带有指定标记的所有元素。如果我们在document子元素元素上调用它,那么我们只从该子元素中获取具有指定标记的元素。

您将始终获取名为标记的所有元素,该元素位于调用方法的元素之内。然而,如果你想获得他们的只有一个,使用

target_element.getElementsByTagName('tag-name')[ index ]; 

其中index是返回length的范围内,这与

target_element.getElementsByTagName('tag-name').length; 

获得内整数由于jQuery是一个JavaScript库,建议在尝试使用jQuery IMO之前了解JS。