Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么不能使用变量作为ID选择器?_Javascript_Jquery - Fatal编程技术网

Javascript 为什么不能使用变量作为ID选择器?

Javascript 为什么不能使用变量作为ID选择器?,javascript,jquery,Javascript,Jquery,很抱歉成为jquerynoob,但我不明白为什么不能将变量作为选择器名称?如果我发出警报,它会正常工作,但当我尝试修改id的内容时,它不会工作: 'success': function () { var varpk = $(this).editable().data('pk'); //alert('#test' + varpk); var spanid = '#test' + varpk; //alert(spanid);

很抱歉成为jquerynoob,但我不明白为什么不能将变量作为选择器名称?如果我发出警报,它会正常工作,但当我尝试修改id的内容时,它不会工作:

'success': function () {
        var varpk = $(this).editable().data('pk');
        //alert('#test' + varpk);
        var spanid = '#test' + varpk;
        //alert(spanid);
        $(spanid).html(varpk);
}

如果您确定ID存在,那么它应该可以从您的代码中使用

请参见一个工作示例:


PS:我相信$this不会返回您认为应该返回的值,除非您真的想针对回调的上下文。

使用变量作为选择器没有错。您使用的选择器不能与目标元素匹配。正如@KevinB所说,您所拥有的应该可以正常工作。我猜您的AJAX请求有问题,成功处理程序没有被命中。检查控制台是否有错误。在这里工作,你可能弄错了selector@JohnRiselvato为什么?再加上名字是错的。这两种形式我都没有问题。@DonavonYelton虽然我没有投反对票,但底线是变量没有理由不能用作选择器,它非常常见,而且工作正常。这意味着还有一些其他的事情正在发生,没有人能帮上忙,因为我们只看到或多或少保证能像广告那样工作的代码。这并不是一个真正的答案。它应该是一个注释。如果调试是答案,那么我们应该自动将它添加到这里提出的每个问题中。这根本不是答案。这是很好的建议,是的。。。但不是答案。你的例子混淆了问题,只不过是说它很好,这是每个人在评论中已经说过的。如果你的答案包含3个以上的问题,你可能不会发布答案的提示是:一般来说,你应该在问题的评论中提出澄清问题。通过将它们编辑进/编辑出答案看起来有点笨拙,而且这肯定会使答案看起来不像一开始的答案。看起来你在这里得到了一个答案的精髓,所以我将从中删除这些问题。如果您仍然需要询问这些问题,请使用注释。谢谢
setTimeout(function() {
    var id = '#' + 'asdf';
    $(id).html('fdsa');
}, 2000);