Как избежать одиночной кавычки (') в JavaScript?
Хорошо, я в основном делаю это:
document.getElementById("something").innerHTML = "<img src='something' onmouseover='change(\'ex1\')' />";
Мне не нужны двойные кавычки ("), где я помещаю их. Мне нужна только одна цитата, поэтому я стараюсь не делать ее двойной, когда она используется. Я пытаюсь достичь этого в конечный результат.
<img src="something" onmouseover="change('ex1')" />
Для меня не работает Escaping.
Мой отмеченный ответ работает отлично, однако, более чистый (и более профессионально выглядящий способ, IMO) loganfsmyth answer.
Ответы
Ответ 1
Вы всегда должны учитывать, что браузер увидит к концу. В этом случае он увидит следующее:
<img src='something' onmouseover='change(' ex1')' />
Другими словами, атрибут "onmouseover" - это просто change(
, а другой "атрибут" называется ex1')'
без значения.
Правда, HTML не использует \
для escape-символа. Но он распознает "
и '
как скрытую цитату и апостроф соответственно.
Вооружившись этими знаниями, используйте это:
document.getElementById("something").innerHTML = "<img src='something' onmouseover='change("ex1")' />";
... Сказав это, вы можете просто использовать котировки JavaScript:
document.getElementById("something").innerHTML = "<img src='something' onmouseover='change(\"ex1\")' />";
Ответ 2
Ответ здесь очень прост:
Вы уже содержали его в двойных кавычках, поэтому нет необходимости скрывать его с помощью \
.
Если вы хотите избежать одиночных кавычек в одной строке кавычек:
var string = 'this isn\'t a double quoted string';
var string = "this isn\"t a single quoted string";
// ^ ^ same types, hence we need to escape it with a backslash
или если вы хотите выйти \'
, вы можете избежать bashslash до \\
и цитаты на \'
следующим образом:
var string = 'this isn\\\'t a double quoted string';
// vvvv
// \ ' (the escaped characters)
Однако, если вы содержите строку с другим типом цитаты, вам не нужно бежать:
var string = 'this isn"t a double quoted string';
var string = "this isn't a single quoted string";
// ^ ^ different types, hence we don't need escaping
Ответ 3
Вы можете избежать '
в JavaScript, например \'
Ответ 4
Так как значения находятся внутри атрибута HTML, вы должны использовать '
"<img src='something' onmouseover='change('ex1')' />";
Ответ 5
document.getElementById("something").innerHTML = "<img src=\"something\" onmouseover=\"change('ex1')\" />";
ИЛИ
document.getElementById("something").innerHTML = '<img src="something" onmouseover="change(\'ex1\')" />';
Он должен работать...