2010-12-14 71 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。

相關問題