2010-02-11 15 views

Odpowiedz

23

Można uprościć swój kod do:

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

Selektor '$ (" whatever_1: has (> whatever_2) ") działa w celu filtrowania przez bezpośrednie potomstwo. '$ (" whatever_1 "). ma ("> whatever_2 ")' does not. Obie techniki nie są równoważne. – Zarepheth

+0

Jestem prawie pewna, że ​​istnieje cena Nobla gdzieś w Norwegii, czekając na osobę, która wymyśliła jQuery, aby ją odebrać. I freakin 'love jQuery! – user35443

+0

@Zarepheth czemu nie? – TWiStErRob

8

Użyj wybieraka :has:

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

Oto przykład napisałem up:

$(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

Awesome, thanks! –

+0

Jak to zrobić z ['.has()'] (http://api.jquery.com/has/)? – ahsteele

Powiązane problemy