Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.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/2/jquery/84.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 在单引号内使用时,模板文字为空_Javascript_Jquery - Fatal编程技术网

Javascript 在单引号内使用时,模板文字为空

Javascript 在单引号内使用时,模板文字为空,javascript,jquery,Javascript,Jquery,我有这样一行代码: <input type="hidden" name="${widgetId}_1" id="${widgetId}_1" value="Hello"/> var result = '$request.getParameter("${widgetId}_data")'; 但是,如果我将模板文字更改为以下内容,则它似乎变为空白: <input type="hidden" name="SomeSampleElement" id="SomeSampleEleme

我有这样一行代码:

<input type="hidden" name="${widgetId}_1" id="${widgetId}_1" value="Hello"/>

var result = '$request.getParameter("${widgetId}_data")';
但是,如果我将模板文字更改为以下内容,则它似乎变为空白:

<input type="hidden" name="SomeSampleElement" id="SomeSampleElement" value="Hello"/>
<input type="hidden" name="SomeSampleElement_data" id="SomeSampleElement_data" value="ValueData"/>

var element = $jQuery("#SomeSampleElement");
var result = '$request.getParameter("${element.id}_data")';

元素在本例中是一个HTML元素

您应该使用反勾号


单引号和双引号用于字符串文字。在字符串文本中,${…}没有特殊意义,它只是字面意思

使用反勾号生成模板文字。如果您试图创建一个函数调用字符串,请将整个字符串放在backticks中。然后在参数周围加上单引号或双引号

您还需要在第一个选择器中选择示例元素

var element = jQuery("#SomeSampleElement")[0];
var result = `$request.getParameter('${element.id}_data')`;
console.log(result);
似乎您正在使用第三方模板引擎,该引擎将${…}用于自己的目的。因此,您应该使用串联:

var result = '$request.getParameter("' + element.id_data + '")';

模板文字使用反引号,而不是单引号。单引号和双引号生成普通字符串文字,而不是模板文字;它记录整个字符串${element.id}\u数据,而不仅仅是{u数据。SomeSampleElement不是正在尝试将元素与名为SomeSampleElement的标记匹配吗?这不应该是[name=SomeSampleElement]?在这种情况下如何?var result='$request.getParameter${element.id}_data';这是我最大的问题,因为我需要从请求中获取数据。@JonathanNguyen这是同一件事-使用反勾号而不是双引号。不要在整件事周围加单引号。var result=$request.getParameter`${element.id}\u data`;如果使用',则将保存一个字符串以产生结果。@Jonathannguen不要试图将其放入注释中,反勾号在注释中具有特殊的标记意义。注释不用于扩展讨论;这段对话已经结束。
var result = '$request.getParameter("' + element.id_data + '")';