2010-12-14 79 views

Répondre

6

Votre test if() toujours évaluer true. Vous devez utiliser la propriété length dans le if().

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

Si vous espériez obtenir un nodeList au lieu d'un objet jQuery, faites ceci:

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

Il peut être fait comme ceci:

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

JavaScript premier ...

document.getElementsByTagName('input'); 

obtiendrez tous les input s en le document ("page"). Alors que

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

obtiendrez tous les input s dans #umi-form.

Dans ce cas, l'appel de getElementsByTagName se trouve sur l'élément avant la période. Si nous l'appelons sur le document nous obtenons tous les éléments avec le tag nommé sur la page. Si nous l'appelons sur un enfant élément du document, alors nous obtenons seulement les éléments avec le tag nommé de l'intérieur de cet enfant.

Vous obtiendrez toujours tous les éléments avec l'étiquette nommée qui se trouvent dans l'élément la méthode est appelée. Si toutefois vous voulez obtenir à un seul d'entre eux, utilisez

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

index est un entier dans la plage de retour length, qui est obtenu avec

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

Depuis jQuery est un Bibliothèque JavaScript, il est conseillé d'avoir une bonne compréhension de JS avant de tenter d'utiliser jQuery IMO.