jQuery的。单击div,获取div的id并使用id作为jquery .css的一部分(" background-image"

时间:2015-02-09 05:21:35

标签: jquery

以下是示例http://jsfiddle.net/apye01n0/6/

首先是html

<div id="large_photo" style="width:100px; height:100px;" > To show one large photo </div>

<div id="base_64_string0" class="thbn_photo" style="float:left; 
background-color: #b0c4de; height: 50px; width: 50px; margin: 0 3px 3px 0; "></div>

想要点击class="thbn_photo",获取id的值并使用以下jquery代码中的值。我已经定义了jquery变量,变量名是被点击的id的值。

这是jquery变量

base_64_string0 = 'R0lGODlhRgAzAJE..';

这是剩下的jquery代码

$(document).on('click', '.thbn_photo', function(){
alert( this.id );

//$("#large_photo").css("background-image", "url('data:image;base64," + base_64_string0 + "')");//This works
$("#large_photo").css("background-image", "url('data:image;base64," + this.id + "')");//This does not work

});

点击alert( this.id );后,我会看到base_64_string0

所以我希望如果我在this.id中插入url('data:image;base64," + this.id + "')我会与url('data:image;base64," + base_64_string0 + "'相同。

url('data:image;base64," + base_64_string0 + "')所有作品(我手动编写变量名称(base_64_string0))。

url('data:image;base64," + this.id + "')不起作用。在生成的源中,请参阅background-image: url(&quot;data:image;base64,base_64_string1&quot;);">。如何让这段代码起作用?

3 个答案:

答案 0 :(得分:2)

您希望使用id参数,如变量名称。这是错误的。

img = {
    base_64_string0 : 'R0lGODlhRgAzAJE..'
}

"url('data:image;base64," + img[this.id] + "')"

http://jsfiddle.net/apye01n0/15/

答案 1 :(得分:1)

您不能将参数值用作变量名称。 相反,您可以将该参数映射到某个值。 我使用了一个带有参数值的图像数组作为图像代码的关键字。 见DEMO

var images = [];
images['base_64_string0'] = 'R0lGODlhRgAz';

答案 2 :(得分:0)

嘿兄弟首先将this.id传递给一个变量并传递该变量的值而不是this.id 如下所示:

$(document).on('click', '.thbn_photo', function(){
alert( this.id );
 var str=this.id; //Here is declaration of variable
//$("#large_photo").css("background-image", "url('data:image;base64," + base_64_string0 + "')");//This works
$("#large_photo").css("background-image", "url('data:image;base64," + str + "')");

});