使用 jQuery.css() 方法时是否需要转义任何字符?
Do you need to escape any characters when utilizing jQuery.css() method?
我遇到这样一种情况,动态 CSS 是通过另一个属性传入的(不是由用户传入的),我想知道使用此方法时是否需要进行任何转义?
我认为可能需要转义引号,因为通过 css 设置背景样式可能会这样结束:
<div style="background-image: url("my-image.png");">
是否不需要转义该样式声明中的那些双引号,因为它们已经在双引号内?
不过我对其进行了测试,似乎不会引起问题。
是否需要这个?
I tested it out though and it doesn't seem to cause an issue.
它 将 导致问题,如果您按照您显示的方式设置它:
<div style="background-image: url("my-image.png");">
只是因为您在双引号中指定了您的样式,并且该样式被解释为在 url(
之后结束。你可以用单引号把它包起来,那它就不会了。
通过 jQuery 设置不会造成任何问题:
$("div").css({"background-image":'url("my-image.png");'})
因为第一个代码段就是用户看到的样子; javascript 不能设置属性,这样会弄乱整个 html;无论如何它都会自动转义。
简而言之,如果您告诉 javascript 仅使用一个属性,它就会这样做并且不会触及元素的任何其他部分。如果你没有弄乱引号,javascript 就不会这样做 :)
我遇到这样一种情况,动态 CSS 是通过另一个属性传入的(不是由用户传入的),我想知道使用此方法时是否需要进行任何转义?
我认为可能需要转义引号,因为通过 css 设置背景样式可能会这样结束:
<div style="background-image: url("my-image.png");">
是否不需要转义该样式声明中的那些双引号,因为它们已经在双引号内?
不过我对其进行了测试,似乎不会引起问题。
是否需要这个?
I tested it out though and it doesn't seem to cause an issue.
它 将 导致问题,如果您按照您显示的方式设置它:
<div style="background-image: url("my-image.png");">
只是因为您在双引号中指定了您的样式,并且该样式被解释为在 url(
之后结束。你可以用单引号把它包起来,那它就不会了。
通过 jQuery 设置不会造成任何问题:
$("div").css({"background-image":'url("my-image.png");'})
因为第一个代码段就是用户看到的样子; javascript 不能设置属性,这样会弄乱整个 html;无论如何它都会自动转义。
简而言之,如果您告诉 javascript 仅使用一个属性,它就会这样做并且不会触及元素的任何其他部分。如果你没有弄乱引号,javascript 就不会这样做 :)