以下是示例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("data:image;base64,base_64_string1");">
。如何让这段代码起作用?
答案 0 :(得分:2)
您希望使用id参数,如变量名称。这是错误的。
img = {
base_64_string0 : 'R0lGODlhRgAzAJE..'
}
和
"url('data:image;base64," + img[this.id] + "')"
答案 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 + "')");
});