这是测试代码:
var current_page= 0;
$('#background_music').append('<img id="bm'+current_page+'" src="success.png" width="68px" height= "68px"/>');
$("#"+ "bm'+current_page+'").offset({top: 171, left: 41});
在此示例中,它不起作用,因为图像不会给出预期的偏移量。 这有什么问题:
"bm'+current_page+'"
但是,如果我将其更改为
$("#"+ "bm"+current_page).offset({top: 171, left: 41});
有效。
" bm'+current_page+' "
不会生成字符串:"bm0"
?更新: 1.有什么区别?我只是想不通这个 +变量+ 。在我过去的问题中,我发布了类似的问题。但是,毕竟我没想出来......
答案 0 :(得分:2)
应该是
$("#bm" + current_page)
而不是
$("#"+ "bm'+current_page+'")
以下只是一个字符串:
"bm'+current_page+'"
这里的字符串分隔符"
(双引号),所以嵌套的单引号('
)这里只是字符。字符串以最后一个"
结束。
然而,在
'<img id="bm' + current_page + '" src="success.png" width="68px" height="68px"/>'
字符串分隔符是'
(单引号),这意味着嵌套的双引号("
)仅仅是以两个字符串串联结束的字符。
答案 1 :(得分:1)
@Stallman这可以帮助您了解引用的工作原理http://www.quirksmode.org/js/strings.html
答案 2 :(得分:0)
这条线路很不稳定:
$("#"+ "bm'+current_page+'").offset({top: 171, left: 41});
尝试以下方法,我们正在修复混合报价。
$('#bm'+current_page).offset({top: 171, left: 41});
答案 3 :(得分:0)
$("#"+ "bm'+current_page+'").offset({top: 171, left: 41});
我认为问题在于这一行。我认为应该是:
$("#bm" + current_page).offset({top: 171, left: 41});