2010-05-18 3 views
61

Я чувствую запутаться символов точечными и хэш в следующем примере:Что означают символы точки и хэша в JQuery?

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

Код 1:

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

Код 2

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

коды 1 и 2 выглядят очень похоже, и поэтому меня так путают, что
, когда я должен использовать «.row div» для ссылки на конкретный DIV вместо использования «#row div»?

+4

Это селектор CSS. Google может помочь вам с этими: http://www.google.com/search?q=css+selectors+tutorial –

+2

@ DanielPryden я бы утвердил, что рекомендации по конкретному учебнику полезны - рекомендуя поиск Google, а не столько , – dbliss

ответ

86

Хэш (#) указывает, чтобы выбрать элементы по их идентификаторам

дот определяет для выбора элементов их имя класса

Вы можете прочитать больше о селекторов здесь (.): http://api.jquery.com/category/selectors/basic-css-selectors/

+7

Кроме того, '#' и '.' такие же, как и в CSS. – Powerlord

4

"." относится к классу, а «#» относится к идентификаторам.

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

$ ("# стол") бы получить полный объект таблицы, в то время как $ ("нечетный") получит все с классом "нечетным". $ ("tr.odd") будет получать таблицы только с этим классом.

1

. определяет класс , называемый «строка». # указывает id, называемый «строка».

19

$ ('строка ') будет выбрать любой элемент с class="row"

$ (' # строки') будет выбрать элемент с id=row

Check the jQuery page on selectors.

+3

И для полноты: '$ ('row')' будет выбирать любой элемент ''. –

5

Это селектор CSS.

Хеш-символ # означает, что элемент является идентификатором. Таким образом, #row будет соответствовать <div id="row">.

В качестве альтернативы, символ точки . означает, что этот элемент является классом CSS. Таким образом, .row будет соответствовать <div class="row">.

Более подробная информация на W3C.

+0

+1 для указания xref между jQuery и CSS - я уверен, что авторы jQuery выбрали эти селекторы намеренно для сопоставления с существующим стандартом для CSS. – GalacticCowboy

+0

jQuery на самом деле использует sizzle, который является механизмом выбора css в javascript: http://sizzlejs.com/ – ordnungswidrig

Смежные вопросы