通过innerHTML生成的表格行URL链接如何实现点击后在新标签页打开
问题原因
- 字符串引号冲突:拼接HTML字符串时外层使用双引号包裹,内部
target="_blank"也使用了双引号,会被JS引擎识别为外层字符串的结束标记,触发语法错误,导致包含CSV加载、表格渲染在内的后续代码全部停止执行。 - 属性位置错误:修改后的代码将
target="_blank"写在了href属性的闭合引号内部,即使没有引号冲突,生成的a标签属性也是非法格式,浏览器无法正常解析。
正确实现方案
推荐两种写法,任选其一即可:
写法1:调整引号嵌套规则
$('td:nth-child(13)').html(function() { return "<a href='" + this.innerHTML + "' target='_blank'>Local Time URL</a>"; });
说明:将target属性的引号改为单引号,同时移出href的属性值范围,避免截断外层字符串。
写法2:使用ES6模板字符串(更推荐,不易出现拼接错误)
$('td:nth-child(13)').html(function() { return `<a href="${this.innerHTML}" target="_blank">Local Time URL</a>`; });
说明:用反引号`包裹整个字符串,内部通过${变量名}直接插入内容,不需要手动拼接字符串,也不用担心引号嵌套冲突。
内容的提问来源于stack exchange,提问作者Craig Sumner
相关产品推荐
相关产品推荐

