2010-12-07 7 views
0

Y at-il un moyen de faire cela?JQuery, une nouvelle sélection en utilisant les résultats

<img id="example" src="anything.jpg" title="something" class="abc" /> 

$('.abc').each(function(){ 

    //test if this result is something 
    if($(this)...(???)...('[src^=anything]')) == 'anything.jpg'){ 

    } 

    //another Jquery selector test for this one  
    if($(this)...(???)...('#example').size() > 0){ 

    } 


}); 

Ceci est juste un exemple, ce que je dois est assez complexe .. mais je voudrais savoir s'il y a un moyen de faire un autre test de sélection jQuery dans le résultat d'un premier sélecteur .. puisque "trouver" trouvera les enfants de $ (ce) .. et .parent() obtenir beaucoup de frères ..

Voyez-vous ce que je veux dire? Avez-vous une idée?



Alors désolé .. Je vais essayer à nouveau ..

$ ('div') each().

obtenir tous "div", non?

Mais maintenant, dans cette fonction que je dois faire une autre « test » vérifier si div class est « rouge » ou « bleu » ..

Voir?

J'ai besoin de tester quelque chose d'autre du résultat basé dans le sélecteur Jquery ..

Je sais que je pouvais faire:

class = $(this).attr('class'); et then if(class=="blue"){} .. Mais je voudrais faire $('this[class=blue]').size()>0){}

+0

@ user534312 Pourriez-vous donner un peu plus d'informations? Je suis confus au sujet de ce que vous essayez d'accomplir. – matthewpavkov

+0

Je ne vois pas ce que vous voulez dire. –

Répondre

4

Le filtre jQuery is() fonctionne sur un ensemble trouvé pour détecter si quelque chose est vrai ou non.

La méthode jQuery filter() permet de réduire davantage un ensemble trouvé en fonction de critères.

var allDivs = $('div'); 
var greenOnes = allDivs.filter('.green'); 
var redOnes = allDivs.filter('.red' ); 
+0

@progz, l'autre jour, vous avez eu une solution pour aligner verticalement un div pouvez-vous me donner ce lien, j'en ai besoin maintenant. – kobe

+1

@gov Googling pour «alignement vertical phrogz» vous le donnera. : p – Phrogz

+0

kool merci beaucoup – kobe

3

I pensez que vous avez besoin de l'is method:

$('.abc').each(function() { 
    $(this).is('[src^=anything]') 
}); 

Ceci est assez simple bien, mais je c Ne dites pas vraiment ce que vous essayez de faire par la description. Peut-être que c'est suffisant pour vous aider à démarrer.

+0

Parfait, merci les gens :) – user534312

0
if($(this).is('[src^="anything"]')) { 
} 
elseif($("#example").size() > 0) { 
}

Vous pouvez mettre $ (« # exemple ») dans une variable en dehors de la boucle, puis faire référence à l'intérieur de la boucle ainsi.

1

Vous pouvez utiliser les méthodes filter et is pour filtrer/recherche dans un objet jQuery.

0
if(this.src.indexOf("anything") === 0) { 
    // source starts with 'anything' 
} 

if($("#example").length) { 
    // since there can be only one #example 
    // in a *valid* document 
} 

En fonction de votre édition:

if($(this).hasClass("blue")) { 
    ... 
} 

?

Questions connexes