Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   querySelectorAll и точка в составе id элемента (https://javascript.ru/forum/misc/12777-queryselectorall-i-tochka-v-sostave-id-ehlementa.html)

klimashkin 02.11.2010 16:01

querySelectorAll и точка в составе id элемента
 
Добрый день!
Проблема такая:
Надо чтобы в составе идентификатора элемента была точка, например
<div id='hello.world'></div>
Но querySelectorAll('div#hello.world') тогда не выберет этот элемент, справедливо полагая, что world - это имя класса.


При этом w3c позволяет вводить точку в идентификатор:
id - Specifies a unique id for an element.
Naming rules:
Must begin with a letter A-Z or a-z
Can be followed by: letters (A-Za-z), digits (0-9), hyphens ("-"), underscores ("_"), colons (":"), and periods (".")


Есть ли решение проблемы?

B@rmaley.e><e 02.11.2010 16:03

Экранируйте ее слешами.
<div id="hello.world"></div>
<script>
alert(document.querySelectorAll('div#hello\\.world').length)
</script>


P.S. Две шутки нужны для того, чтобы один слеш не потерялся внутри строки.

subzey 02.11.2010 20:44

Или вот так, если не хочется возиться с экранированием
<div id="hello.world"></div> 
<script> 
alert(document.querySelectorAll('div[id="hello.world"]').length) 
</script>

klimashkin 03.11.2010 10:06

B@rmaley.e><e и subzey, спасибо!
Оба способа хороши!


Часовой пояс GMT +3, время: 06:22.