2010-05-18 6 views
61

Ich fühle mich verwirrt der Punkt und Hash-Symbole in dem folgenden Beispiel:Was bedeuten Punkt- und Rautenzeichen in JQuery?

<DIV ID="row"> 
<DIV ID="c1">    
<Input type="radio" name="testing" id="testing" VALUE="1">testing1 
</DIV> 
</DIV> 

Code 1:

$('#row DIV').mouseover(function(){  
    $('#row DIV').addClass('testing'); 
    }); 

-Code 2

$('.row div').mouseover(function(){ 
     $(this).addClass('testing'); 
    });​ 

Codes 1 und 2 sehen sehr ähnlich, und so macht es mich so verwirrt, dass
wenn ich ".row div" verwenden soll, beziehen sich auf ein bestimmter DIV anstelle von "#row div"?

+4

Sie sind CSS Selektoren. Google kann Ihnen dabei helfen: http://www.google.com/search?q=css+selectors+tutorial –

+2

@DanielPryden Ich würde argumentieren, dass die Empfehlung eines bestimmten Tutorials hilfreich ist - eine Google-Suche zu empfehlen, nicht so sehr . – dbliss

Antwort

4

"." bezieht sich auf eine Klasse, während "#" auf IDs verweist.

<table id="table"> 
    <tr class="odd"></tr> 
    <tr></tr> 
    <tr class="odd"></tr> 
</table> 

$ ("# table") würde das vollständige Tabellenobjekt erhalten, während $ ("odd") würde alles mit der Klasse "odd" erhalten. $ ("tr.odd") würde nur Tabellenzeilen mit dieser Klasse erhalten.

1

Die . spezifiziert eine Klasse genannt "Zeile." Die # spezifiziert eine ID namens "Zeile."

19

$ ('row ') wählt ein beliebiges Element mit class="row"

$ (' # row') wird das Element mit id=row

Check the jQuery page on selectors auszuwählen.

+3

Und der Vollständigkeit halber: '$ ('row')' wählt ein '' Element. –

5

Dies sind CSS-Selektoren.

Das Hash-Symbol # bedeutet, dass das Element eine ID ist. So würde #row mit <div id="row"> übereinstimmen.

Alternativ bedeutet das Punktsymbol ., dass das Element eine CSS-Klasse ist. Also .row würde <div class="row"> übereinstimmen.

Es gibt weitere Informationen über W3C.

+0

+1 für die Angabe der XRef zwischen jQuery und CSS - Ich bin sicher, dass die jQuery-Autoren diese Selektoren absichtlich auf den vorhandenen Standard für CSS abbilden. – GalacticCowboy

+0

jQuery verwendet tatsächlich Sizzle, die eine CSS-Selektor-Engine in Javascript ist: http://sizzlejs.com/ – ordnungswidrig