2010-04-29 4 views
2

Je veux compter combien de divs avec la classe .tool qui contiennent le code html par exemple suivant: <b>Photoshop</b>Comptez combien de divs a un contenu spécifique?

<div class="tool"><b>After Effects</b></div> 
<div class="tool"><b>Photoshop</b></div> 
<div class="tool"><b>Illustrator</b></div> 
<div class="tool"><b>Photoshop</b></div> 
<div class="tool"><b>Photoshop</b></div> 
// This would return 3 

Comment faire en utilisant jQuery? je ne peux compter que tous les divs .tool?

Merci

Répondre

7

utilisation filter:

var count = $(".tool").filter(function() { 
    return $(this).text() == 'Photoshop'; 
}).length; 

Si vous insistez sur le HTML correspondant:

var count = $(".tool").filter(function() { 
    return $(this).html() == '<b>Photoshop</b>'; 
}).length; 
+0

'.map' $ retournera un objet avec la même longueur que le * tous les éléments correspondants *, je pense que vous voulez utiliser ['$ .filter'] (http://api.jquery.com/filter/) – CMS

+0

@CMS - vous avez raison, je suis corrigé . Merci pour le commentaire. – karim79

+0

Merci beaucoup karim :) – Ryan

2

ou utiliser contains

$("div.tool:contains('Photoshop')").length 
+1

Cela correspondrait également à 'Photoshop Plugins', 'Photoshop Tutorials' etc. Cela dit, cela pourrait faire pour le problème de l'OP. – karim79

+0

Vrai, et vrai :) –

Questions connexes