2016-01-13 2 views
0

Существует система, написанная моим коллегой. И меня смущает работа jQuery.Недопустимое имя класса, выбранное jQuery

HTML:

<div id="test"> 
    <div class="1_01_001"> 
    content 
    </div> 
</div> 

Javascript:

window.onload = function() { 
    console.log($('#test.1_01_001').text()); // get empty string 
    console.log($('#test .1_01_001').text()); // get textContent of that element 
} 

ответ

1

Селектор #test.1_01_001 ищет элементы с идентификатором "тест", который также имеет класс "1_01_001"

Селектор #test .1_01_001 ищет элемент с классом «1_01_001», который также является потомком элемента с идентификатором «test»

+1

Это правильный ответ. Вопрос действительно в отношении формата селектора CSS. Без пробела между id и классом он пытается найти элемент с идентификатором 'test' и классом' 1_01_001' на том же элементе. @kid, у вас есть 'test' id в первом div и классе' 1_01_001' на div внутри него. Таким образом, они не на одном элементе. Я создал [demo] (http://codepen.io/Ghodmode/pen/JGyYNP) в CodePen, что делает его немного легче увидеть. – Vince

0

Вторая альтернатива работает, потому что правильно использует селектор потомков jQuery, вы должны использовать пробелы. Подробнее здесь http://api.jquery.com/descendant-selector/

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