Javascript 为什么赢了';连接运算符不能工作吗?

Javascript 为什么赢了';连接运算符不能工作吗?,javascript,jquery,Javascript,Jquery,以下是测试代码: 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).off

以下是测试代码:

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).offset({top: 171, left: 41});
它起作用了

  • 有什么区别
  • 代码
    “bm”+当前页面+“
    是否生成字符串:
    “bm0”
  • 更新: 1.有什么区别?我就是搞不懂这个+变量+。在我过去的问题中,我发布了类似的问题。然而,我毕竟没有弄明白…

    应该是这样的

    $("#bm" + current_page)
    
    而不是

    $("#"+ "bm'+current_page+'")
    

    以下只是一个字符串:

    "bm'+current_page+'"
    
    这里的字符串分隔符是
    (双引号),因此这里嵌套的单引号(
    )只不过是字符。字符串以最后一个
    结尾

    然而,在

    '<img id="bm' + current_page + '" src="success.png" width="68px" height="68px"/>'
    
    “”
    

    字符串分隔符是
    (单引号),这意味着嵌套的双引号(
    )仅仅是以两个字符串的串联结束的字符。

    这一行不可靠:

    $("#"+ "bm'+current_page+'").offset({top: 171, left: 41});
    
    请尝试以下操作,我们正在修复混淆的报价

    $('#bm'+current_page).offset({top: 171, left: 41});
    
    我认为问题在于这方面,我认为应该是:

    $("#bm" + current_page).offset({top: 171, left: 41});
    

    @Stallman这应该有助于你理解引用语是如何工作的

    回答问题2:不,显然。你不会问它是否工作。@Guffa“bm”+“current”+“page+”?它会生成bm0吗?但img id=“bm”+current\u page+”会导致id=“bm0”“~@Stallman您被
    标记构造中的嵌套引号弄糊涂了。所以双引号”“here:id=“bm'+current\u page+”不是字符串分隔符?那么id=“bm”+current_page+”的操作实际上做了什么?@Stallman,我更新了答案哦,我也在编辑,对不起。变量current_page=0或current_page=“0”是否会影响连接?
    $("#"+ "bm'+current_page+'").offset({top: 171, left: 41});
    
    $("#bm" + current_page).offset({top: 171, left: 41});