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

时间:2018-02-02 23:45:59

标签: javascript jquery scrollto quotation-marks

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

$('.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})

出了什么问题?

1 个答案:

答案 0 :(得分:2)

您不需要在字符串中加引号,只需正常连接字符串。

$("#jour" + i)

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