В HTML \"
означает не буквальную кавычку, а просто backsla sh, за которой следует двойная кавычка. В HTML для создания символа кавычки, когда вам нужно, вы используете HTML Entities , а спецификация c для двойной кавычки: "
.
<input value=""To be or not to be"">
\"
- это escape-код для двойной кавычки, когда эта строка анализируется во время выполнения JavaScript, а не анализатором HTML.
Итак, value="6\"
не содержит буквальную кавычку. Содержит 6\
. Кавычка после \
является закрывающей кавычкой для атрибута value
, в результате чего tall"
остается недействительным HTML, который анализатор HTML просто игнорирует. Когда вы извлекаете значение из ввода, вы получите только 6\
.
Вы указали, что строка создается правильно, но это не так. Внимательно посмотрите в конце того, что вы говорите, что вы получаете;
<input id="CTRLText1_3" name="Text1" type="radio" value="Rev 6" tall"="">
tall"=""
недопустимо HTML.
Чтобы сделать то, что я думаю, вы должны использовать один кавычки для атрибута HTML, а затем двойные кавычки могут быть правильно сохранены для JavaScript для последующего извлечения. Вам не нужно убегать:
console.log(document.querySelector("option").value);
<option value='6" tall'>