不能使用动态生成的字符串作为 jQuery 选择器

Can't use dynamically generated string as jQuery selector

我想使用 i 中的值来构建一个新 ID 以在我的 scrollto 函数中使用,但它不起作用。

$('.calendar').each( function(i){

  $(this).attr('id',i).css({'margin-left':'2.5px'}).text(i+5).on('click',function(){

    var rr="$('"+"#jour"+i+"')"
    alert(rr)

    $(".layerJour").scrollTo(rr, {duration:300})

  })

});

当我使用警报时,它完全按照我的要求工作:

var rr="$('"+"#jour"+i+"')"
alert(rr)

但是在这里使用时它不起作用:

$(".layerJour").scrollTo(rr, {duration:300})

如果我执行以下操作,它会起作用,这很奇怪,因为它使用的名称与我使用 alert.

时的名称完全相同
$(".layerJour").scrollTo($('#jour1'), {duration:300})

怎么了?

您不需要在字符串中放入引号,只需正常连接字符串即可。

$("#jour" + i)

引号是文字字符串语法的一部分,它们实际上并不在字符串本身中。