数据属性中的css规则未应用

时间:2015-07-11 20:21:27

标签: javascript jquery html css escaping

我被困住了。请解释一下如果你把这个问题投下来,这样我就能理解为什么,以及如何改进我的问题    我有一个数据属性需要被引用"通过jquery。 jquery正在引用此数据属性来设置" background"和" url"到css课。我不知道如何或在何处放置引号,以便url()内的引号正确放置。 (我认为这是问题)

<li class="wings-data" data-country-code="se" 
 data-background-style="'background','url( "images/se.jpg")'">

var backgroundStyle = $(".wings-data").data("background-style");

$("#article").css(backgroundStyle);

4 个答案:

答案 0 :(得分:2)

<li class="wings-data" data-country-code="se"
 data-background-style="'background','url( \"images/se.jpg\")'"> ABC</li>

var backgroundStyle = $(".wings-data").prop("data-background-style");
$("#article").css(backgroundStyle);

答案 1 :(得分:2)

获取数据后,背景样式将更改为backgroundStyle; jQuery会自动删除连字符和驼峰连字符属性

var backgroundStyle = $(".wings-data").data("backgroundStyle");

同样,用反斜杠转义引号:

<li class="wings-data" data-country-code="se"
 data-background-style="'background','url( \"images/se.jpg\")'"></li>

答案 2 :(得分:1)

完全消除引号以获得更易读的代码。

HTML:

<li class="wings-data" data-country-code="se"
 data-background-style="background,url(images/se.jpg)"> ABC</li>

JS:

var backgroundStyle = $(".wings-data").data("backgroundStyle").split(',');
$("#article").css(backgroundStyle[0],backgroundStyle[1]);

请参阅JsFiddle解决方案。

答案 3 :(得分:0)

您的代码存在问题

var backgroundStyle = $(".wings-data").data("background-style");

$("#article").css(backgroundStyle);

而不是尝试代码

li class="wings-data" data-country-code="se"
 data-background-style="'background','url( \"images/se.jpg\")'"

var backgroundStyle = $(".wings-data").attr("data-background-style");

$("#article").css(backgroundStyle);