Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.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 如何将Jquery Id选择与变量一起使用_Javascript_Jquery_Razor - Fatal编程技术网

Javascript 如何将Jquery Id选择与变量一起使用

Javascript 如何将Jquery Id选择与变量一起使用,javascript,jquery,razor,Javascript,Jquery,Razor,因此,我的脚本中有一个部分如下所示: $('input[id="TestMyId"]').autocomplete({ source: availableChoice }, }); 这非常有效,我启动了autocomplete,可以从选项列表中进行选择,但当我将Test设置为字符串变量并尝试将其与MyId连接时,我根本无法启动它: @{ var foo = "Test"; } <body..../> <script> $('input[id="

因此,我的脚本中有一个部分如下所示:

$('input[id="TestMyId"]').autocomplete({
    source: availableChoice
 },
});
这非常有效,我启动了autocomplete,可以从选项列表中进行选择,但当我将Test设置为字符串变量并尝试将其与MyId连接时,我根本无法启动它:

@{
    var foo = "Test";
}
<body..../>
<script>
    $('input[id="' + @foo + 'MyId"]').autocomplete({
        source: availableChoice
     },
    });
</script>
很好,但是使用我得到的组合字符串运行另一部分是:

0x800a1391 - JavaScript runtime error: 'TestContactInformationFirstNameId' is undefined

有什么想法吗?

此选择器在jQuery中不起作用。您应该首先使用ID选择器,然后使用filter函数应用输入约束(如果需要,因为ID是唯一的)

如果您做得很好,这意味着保持每个页面的ID属性唯一,那么下面的方法应该可以奏效

$('#' + @string.Format("'{0}'", foo) + 'MyId').autocomplete({
    source: availableChoice
 });

好的,经过多次尝试和错误后,我发现以下内容适用于我的案例,在这里发布,以防对其他人有所帮助:

$("input[id='@prefixt" + "FirstNameId']")


这两种方法似乎都有效,看起来变量调用需要在引号内。

您不需要在symbolDo上使用console.log('input[id=“”+@foo+'MyId“]);要查看Razor生成的是什么,我在控制台中得到了一个无效字符错误,只是尝试了一下,似乎不起作用,ID绝对是唯一的,因为在这两种情况下,它们都是相同的“TestMyId”。另外,如果没有@infort of foo,我会得到javascript错误foo未定义。请尝试我的编辑。修改为应用格式。我不知道你用的是Razorgetting语法错误。。。我想我明天再看一次。如果你想不出来,就告诉我错误。我很乐意帮忙。我已经更新了一些代码和我遇到的错误
$('#' + @string.Format("'{0}'", foo) + 'MyId').filter('input');
$('#' + @string.Format("'{0}'", foo) + 'MyId').autocomplete({
    source: availableChoice
 });
$("input[id='@prefixt" + "FirstNameId']")
$("#@prefixt" + "FirstNameId")