web-dev-qa-db-fra.com

Obtenir l'attribut de l'élément enfant

Si j'ai le balisage suivant:

<p class="header hours">
    <a href="javascript:void(0)" class="sort" sortcat="hours">
        Hours&nbsp;<span class="imgholder" sortcat="hours">&nbsp;</span>
    </a>
</p>

Comment puis-je cibler le <span> balise dans la balise d'ancrage? Il existe cinq autres <p> entrées de balises, chacune avec une valeur différente pour sortcat=

26
PruitIgoe
$(".sort").click(function(){
  var cat =  $(this).children("span").attr("sortcat");
  //do something with the sortcat
});
51
mkoryak
$("a span[sortcat]").attr('sortcat')

Cela vous donnera la valeur sortcat du premier élément. Pour les obtenir tous, procédez comme suit:

$("a span[sortcat]").map(function(){ return $(this).attr('sortcat') })

Voir cette démo de travail: http://jsfiddle.net/BwgDW/

10
Brian Donovan
$('.sort span')

Ai-je mal compris?

2
sdleihssirhc

Il y a plusieurs façons de référencer la balise span, mais toutes se terminent par ".attr ('sortcat');" Je suppose que cela dépend de la spécificité que vous souhaitez être et de la flexibilité dont vous avez besoin s'il y en a quelques-unes. autres balises p avec balises d'ancrage et portées à l'intérieur.

$('p.header a.sort span.imgholder').attr('sortcat');

/* or */

$('span.imgholder').attr('sortcat');

Vous pouvez sélectionner des éléments en fonction de leur nom de balise, de leur nom de classe ou des attributs à l'intérieur des balises. Reportez-vous à la documentation de jQuery sur les sélecteurs:

http://api.jquery.com/category/selectors/basic-css-selectors/

http://api.jquery.com/category/selectors/

1
TJ Kirchner

find () trouve des éléments dans un élément donné.

$('a.sort').find('span');

0
scragz