我想使用.html()
在我的网站中添加样式。
我试过了:
jQuery的:
if ($('#checkbox:checked') > 0) {
$("body").html("
<style>
.selected{
background-image: url('http://www.website.com');
}
</style>
");
}
但它给我一个错误说:SyntaxError: unterminated string literal
答案 0 :(得分:3)
首先,要在JavaScript中使用多行字符串,必须在每行的末尾添加反斜杠。 例如:
var str = "This\
is\
multiline\
sting.";
另外,如果您想将html添加到body
,而不是替换它,请以这种方式执行:
if ($('#checkbox:checked').length > 0) {
$("body").append("\
<style>\
.selected{\
background-image: url('http://www.website.com');\
}\
</style>\
");
}
(我在您的选择器中添加了.length
,因为您无法将0与数组进行比较)
我没有测试,但它应该可以工作。
答案 1 :(得分:2)
SIMPLY CLEAN
$('#checkbox').on('change', function () {
(this.checked) ? bgVal='url("../images/picture.jpg")' : bgVal='default';
$(".selected").css('background-image', bgVal);
});
您的默认值需要在.selected
类中指定。
答案 2 :(得分:2)
试试这个:
if( $('#checkbox:checked').length > 0 ) {
$("body").append("\
<style>\
.selected{\
background-image: url('http://www.website.com');\
}\
</style>\
");
}
答案 3 :(得分:2)
你应该让你的脚本在一行中使它工作:
if ($('#checkbox:checked') > 0) {
$("body").html("<style>.selected{ background-image: url('http://www.website.com'); } </style> ");
}
或者您可以将slashes
添加到每行的末尾。