.html()在查询中添加样式与html()

时间:2014-12-01 03:59:54

标签: javascript jquery html css

我想使用.html()在我的网站中添加样式。

我试过了:

jQuery的:

if ($('#checkbox:checked') > 0) {
    $("body").html("
        <style>
            .selected{
                background-image: url('http://www.website.com');
            }
        </style>
    ");
}

但它给我一个错误说:SyntaxError: unterminated string literal

4 个答案:

答案 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添加到每行的末尾。