2010-05-04 5 views
0

J'utilise jQuery selector pour obtenir les valeurs de tous les composants CMS sur la page en utilisant $('div.cmscomponent') mais comment puis-je tester cela pour voir si je reçois réellement la liste des composants sur la page.Comment obtenir des valeurs d'objet et des propriétés dans jquery?

J'utilise:

var temp = $('div.cmscomponent'); 
alert(temp); 

et le résultat que je reçois est [objet OBJECT] et alors comment puis-je tester cela? et comment puis-je obtenir des valeurs de l'objet et de ses propriétés.

Répondre

0

Eh bien cela dépend de ce que vous voulez savoir sur les objets correspondants. Quelques exemples:

var temp = $('div.cmscomponent'); 
alert(temp.length); // number of matched elements 

// Alert each id attribute of every matched element 
$(temp).each(function(index) { 
    alert(index + ': ' + $(this).attr("id")); 
}); 
0
var temp = $('div.cmscomponent').length; 
alert(temp); 
0

Si par « comment puis-je tester cette », vous vouliez dire « comment puis-je écrire un test unitaire pour cette », la réponse est que vous ne devriez pas. Vous n'avez pas écrit jQuery, vous devez donc supposer qu'il a déjà été testé par unité. (Si étaient un problème avec jQuery, cependant, vous pouvez écrire l'intégration des tests attrapaient cela.)

D'autre part, si vous vouliez dire « comment puis-je bon sens vérifier ce que jQuery me dit de ? assurer que je ne l'ai pas gaffe sur les entrées », il y a quelques façons:

  • Vérifiez que .length correspond au nombre prévu d'articles.
  • Vérifiez qu'une requête XPath pour les mêmes noeuds ("//div[@class='cmscomponent']") renvoie le même nombre de valeurs.
  • Vérifiez que le contenu du Nième nœud correspond à ce que vous attendiez.

Sinon, il est probablement préférable d'utiliser un outil tiers comme Firebug.

1

$() renvoie un objet wrapper jQuery, dont le contenu est généralement une liste d'éléments DOM, ainsi que les propriétés et les méthodes qui s'appliquent à ces éléments.

Si vous souhaitez obtenir un élément, vous pouvez y accéder en utilisant des index de type tableau ou la méthode get():

alert(temp[0].tagName);  // Fetch the first element, alert the `tagName` 
alert(temp.get(1).tagName); // Fetch second element, alert the tagName 

Pour vérifier combien d'éléments le résultat contient, vous pouvez utiliser .length, juste comme vous le feriez sur un tableau ou d'une collection/nodelist:

alert(temp.length); // Alerts number of elements found. 
0

Si tout ce que vous voulez faire est de tester si votre code est en train de faire ce que vous attendez, Firebug est votre ami ici. Il vous donnera une console pour taper une commande comme $('div.cmscomponent'), puis explorer interactivement les résultats qui sont retournés par elle.

Vous pouvez ensuite passer la souris sur chaque élément que votre commande a renvoyé et il sera surligné sur la page, afin que vous puissiez voir quel élément la commande est retournée, et si ces éléments sont ceux que vous attendiez/vouliez.

Questions connexes