javascript - poner - json comilla simple
¿Cómo evito una comilla simple('') en JavaScript? (5)
Dado que los valores están realmente dentro de un atributo HTML, debe usar '
"<img src=''something'' onmouseover=''change('ex1')'' />";
Esta pregunta ya tiene una respuesta aquí:
ACTUALIZACIÓN: quiero dar una respuesta actualizada a esta pregunta. Primero, déjenme decir si están tratando de lograr lo que tengo a continuación, les recomiendo que administren eventos al agregar oyentes de eventos en su lugar. Recomiendo encarecidamente que utilice jQuery para su proyecto y use su sintaxis para administrar escuchas de eventos en lugar de usar DOM.
PREGUNTA
De acuerdo, básicamente estoy haciendo esto:
document.getElementById("something").innerHTML = "<img src=''something'' onmouseover=''change(/'ex1/')'' />";
No quiero comillas dobles (") donde coloco el / ''. Solo quiero una comilla simple, así que estoy tratando de no ponerla doble cuando se usa. Estoy tratando de llegar a esto en el resultado final .
<img src="something" onmouseover="change(''ex1'')" />
Escapar no funciona para mí.
Mi respuesta marcada funciona bien, sin embargo, el limpiador (y de aspecto más profesional, IMO) es la respuesta de Loganfsmyth .
La respuesta aquí es muy simple:
Ya lo está conteniendo entre comillas dobles, por lo que no hay necesidad de escapar con /
.
Si desea evitar comillas simples en una cadena de comillas simples:
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
o si quiere escapar /'
, puede escapar de bashslash a //
y la cita a /'
like así:
var string = ''this isn///'t a double quoted string'';
// vvvv
// / '' (the escaped characters)
Sin embargo, si contiene la cadena con un tipo de cita diferente, no necesita escapar:
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
Puede escapar de ''
en JavaScript como /'
Siempre debe considerar lo que el navegador verá al final. En este caso, verá esto:
<img src=''something'' onmouseover=''change('' ex1'')'' />
En otras palabras, el atributo "onmouseover" es simplemente change(
, y hay otro "atributo" llamado ex1'')''
sin valor.
La verdad es que HTML no usa /
para un personaje de escape. Pero sí reconoce "
y '
como cita escapada y apóstrofo, respectivamente.
Armado con este conocimiento, usa esto:
document.getElementById("something").innerHTML = "<img src=''something'' onmouseover=''change("ex1")'' />";
... Dicho esto, podría usar citas de JavaScript:
document.getElementById("something").innerHTML = "<img src=''something'' onmouseover=''change(/"ex1/")'' />";
document.getElementById("something").innerHTML = "<img src=/"something/" onmouseover=/"change(''ex1'')/" />";
O
document.getElementById("something").innerHTML = ''<img src="something" onmouseover="change(/'ex1/')" />'';
Debería estar funcionando ...