尝试使用 jquery 输出包含连字符的字符串,如下所示:
$("#OpsContent").html($("#OpsContent").html() + "<b>" + $(this).text() +<br/>
+ ( ( group ) ? " for <u>" + group + "</u>" : "" )<br/>
+ " to</b> " + choices + "<br />");
不幸的是,如果字符串“group”包含连字符,输出总是显示为:
<b>Set Group Rank<u>NaN</u> to</b> 5
我似乎无法将组变量正确解释为字符串,它似乎更像是在尝试减去字符串的两半。我试过使用 group = group.replace("-", ".");
和 "\-"
在有问题的行之前,但这没有帮助。更奇怪的是,紧随其后的一行可以正常工作:
OpsPending[ count ] = "?do=" + String($(this).attr("id"))<br/>
+ "&selection=" + choices<br/>
+ ( ( group ) ? "&group=" + group : "" );
输出到变量非常好!
一个解决方案是返回并用 php 预处理页面中的所有连字符,但这似乎不必要地复杂:应该有比这更好的方法。
最佳答案
嗯,您的字符串连接中似乎有一个额外的 +
(就在带括号的三元运算符之前),这会导致您使用三元运算符的部分从字符串转换而来到一个数字,因为额外的 +
将被解释为一元加运算符,从而导致 NaN。虽然这并不能完全解释你的症状(即它只发生在 group
有连字符时,实际上只有 group
显示为 NaN,而不是整个三元表达式),如果不删除那里多余的 +
关于Javascript 转义字符串以进行输出并避免 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8627102/