Javascript 迭代时出现未终止的字符串错误
这是我的代码:Javascript 迭代时出现未终止的字符串错误,javascript,jquery,Javascript,Jquery,这是我的代码: <c:forEach items="${entry.value}" var="keyval"> var bdgroup= { elem1: '${keyval.partno}', elem2: '${keyval.location}', elem3: '${keyval.village}', elem4: '${keyval.id}' }; exampleArray.push(bdgroup); </c:forEach>
<c:forEach items="${entry.value}" var="keyval">
var bdgroup= {
elem1: '${keyval.partno}',
elem2: '${keyval.location}',
elem3: '${keyval.village}',
elem4: '${keyval.id}'
};
exampleArray.push(bdgroup);
</c:forEach>
变量bdgroup={
elem1:“${keyval.partno}”,
elem2:“${keyval.location}”,
elem3:“${keyval.village}”,
elem4:“${keyval.id}”
};
例如array.push(bdgroup);
我越来越
'未终止的字符串文字错误'`
有时它工作正常,但在其他情况下会发生此错误。当例如
${keyval.id}
展开时,如果它有一个单引号,则Javascript将如下所示
elem1: 'what's up?'
因此,您的未终止字符串错误
在将引号放入JSON之前对其进行转义。看起来您使用的是标记库,单引号中的元素由页面处理器生成 我敢打赌,在失败的时候,您的值包含单引号
转义单引号,这应该可以解决问题。转义单引号和任何其他特殊字符,以便正确获取值
I'm==>I'm正是我在控制台中看到的..我尝试了这个..var villa='${keyval.id}.replace(/'/g,'');但这也失败了……我怎么才能逃脱呢?@sakar你需要把它放在牙套里。我不确定您使用的是什么工具,但它应该更像
'${keyval.id.toEscapedString()}'
。这在javascript中是不可能替换的。按照您的想法,我在服务器端替换了它。Mark已经回答了这个问题,但我不喜欢您反复声明bdgroup。快速删除的一种方法是:exampleArray.push({elem1:'expr',elem2:'expr',…});如果有适当的空白,它应该同样容易阅读。