使用jquery和转义双引号更改背景图像

时间:2013-11-21 15:06:18

标签: jquery html

我想使用jquery更改背景图片。

用户在输入文本中将url输入到他的背景中,当单击按钮时,背景图像会发生变化,这很简单。

这是我使用的代码。

$(".change_bg").on("click",function(e){

    e.preventDefault();

    var bg = $(".bg_input").val();

    $("table").css("background-image", "url("+bg+")");  

});

这段代码效果很好。

我的问题是,当我打开萤火虫时,我看到了这一点。

<table style="background-image: url("the_new_background-image");" >

如何删除网址中的双引号并获取此内容。

<table style="background-image: url(the_new_background-image);" >

整个HTML代码将被发送到服务器并下载,因此当我尝试在浏览器中打开下载的HTML文件时,背景图像不会显示。

我尝试使用此代码并替换双引号,但我没有成功。

$("table").css("background-image", ("url('"+bg+"')").replace(/"/g,""));

请帮助。

3 个答案:

答案 0 :(得分:1)

实际上,您的代码应该可以正常工作。 url()参数不需要引号,url(urltofile)和url(“urltofile”)一样好。

See a working fiddle

$(".change_bg").on("click",function(e){

    e.preventDefault();

    var bg = $(".bg_input").val().replace("\"", "");

    $("table").css("background-image", "url("+bg+")");  

});

答案 1 :(得分:0)

试试这个:

$("table").css("background-image", "url(" + escape(bg) + ")");

甚至更好,

var bg = escape($(".bg_input").val());

在做任何其他事情之前逃跑!

答案 2 :(得分:0)

您可以在此处看到代码没有问题:jsfiddle.net/ThF5Z

$("#me").on("click",function(e){
console.log("click");
    e.preventDefault();

    var bg = $("input").val();

    $("#me").css("background-image", "url("+bg+")");  

});

引用来自firebug / firefox。在chrome中测试相同的代码,但您没有引号。没有什么可以解决的。