2010-02-11 2 views

Répondre

23

Vous pouvez simplifier votre code:

$('div:has(> object)').css('text-align', 'center'); 
+3

Le sélecteur '$ (" whatever_1: has (> whatever_2) ")' fonctionne pour filtrer par enfant direct. '$ (" whatever_1 "). has ("> whatever_2 ")' ne l'est pas. Les deux techniques ne sont pas équivalentes. – Zarepheth

+0

Je suis sûr qu'il y a un prix Nobel quelque part en Norvège qui attend que la personne qui a inventé jQuery le prenne. Je freakin 'aime jQuery! – user35443

+0

@Zarepheth pourquoi pas? – TWiStErRob

8

Utilisez le sélecteur :has:

$("div:has(> object)").css("text-align", "center"); 

Voici un exemple j'ai écrit:

$(function() { 
 
    $("div:has(> h3)").css("background", "yellow"); 
 
});
div { padding: 15px; border: 1px solid black; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script> 
 
<div> 
 
    <h2>outer</h2> 
 
    <div> 
 
    <h3>inner</h3> 
 
    </div> 
 
</div>

+0

Génial, merci! –

+0

Comment cela serait-il fait avec ['.has()'] (http://api.jquery.com/has/)? – ahsteele

Questions connexes