Javascript 转义字符串以进行输出并避免 NaN

标签 javascript jquery escaping

尝试使用 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("-", "&#46;");"\-"在有问题的行之前,但这没有帮助。更奇怪的是,紧随其后的一行可以正常工作:

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/

相关文章:

javascript - 为什么我无法将导航栏居中?

Jquery - 如何在动态创建后添加事件

powershell - 我可以在 PowerShell 'string' 中使用单引号吗?

.net - SqlCommand.Parameters.AddWithValue 到底做什么?

javascript - JavaScript 中的表达式语句

javascript - 如何知道点击了什么?

javascript - D3js使文本标签可拖动

javascript - Bootstrap、jQuery、Popper 和 CSS 加载顺序

javascript - 为什么 Vite 会创建两个 TypeScript 配置文件 : tsconfig. json 和 tsconfig.node.json?

javascript - JQuery/Coffeescript unescape变量字符串