почему я должен написать код с четырьмя обратными слешами вместо двух? - PullRequest
0 голосов
/ 24 ноября 2018

Я хочу написать код, подобный этому document.querySelector ('# foo \ bar');и это не работает

    <div id="foo\bar"></div>
    <div id="foo:bar"></div>

<script>

  document.querySelector('#foo\\\\bar'); // Match the first div
  document.querySelector('#foo\\:bar');  // Match the second div
</script>

1 Ответ

0 голосов
/ 24 ноября 2018

Синтаксис строки JavaScript использует обратную косую черту как механизм экранирования для специальных символов.Чтобы получить строку с обратным слешем single , необходимо удвоить ее.

Затем синтаксис селектора CSS для querySelector() также используетСимвол обратной косой черты в качестве специального запуска escape-последовательности, и поэтому все повторяется снова.

Таким образом, при разборе строки уменьшается обратная косая черта до двух, а затем интерпретируется селектор, в результате чего querySelector() ищет только одинобратная косая черта.

...