使用jQuery.css()方法时是否需要转义任何字符?

时间:2015-03-29 14:59:34

标签: javascript jquery html css escaping

我的情况是动态CSS通过另一个属性传递(所以不是由用户传递),我想知道在使用这种方法时是否需要进行任何转义?

我认为也许引用需要转义,因为通过css设置背景样式可能最终得到:

<div style="background-image: url("my-image.png");">

那个样式声明中的那些双打引号是否需要被转义,因为它们已经在双引号内?

我测试了它,但它似乎似乎导致问题。

这是否需要?

1 个答案:

答案 0 :(得分:1)

  

我测试了它,但它似乎没有引起问题。

会导致问题,如果你按照你所展示的方式进行设置:

<div style="background-image: url("my-image.png");">

只是因为你用双引号指定你的风格,并且风格被解释为在url(之后结束。你可以将它包装在单引号中,然后它就不会。

通过jQuery设置这个不会导致任何问题:

$("div").css({"background-image":'url("my-image.png");'})

因为第一个片段就是它对用户的看法; javascript无法设置属性,因为它会弄乱整个html;无论如何它都会自动逃脱。

简而言之,如果你告诉javascript只使用一个属性,它会这样做,并且不会触及元素的任何其他部分。如果你没有搞乱报价,javascript就不会这样做:)