javascript - 为什么在使用 .innerHTML. 在 JavaScript 中设置的 HTML <p> 标签的 ID 上有额外的引号?

标签 javascript html

我正在尝试将 ID 为“results”的 div 的内容设置为具有变量 (i) 的值。我还想将元素的 ID 设置为另一个变量 (a) 的值。

var i="somecontent";
var a=0;
document.getElementById("results").innerHTML += "<p " 
+ "id=" + "&quot;" + a + "&quot; " + "\>" + i + "<p/>

然而,这导致了 <P> 的 ID标签为 id=""0""而不是 id="0" .

这是输出:

<p id=""0"">somecontent</p>

但是,我想显示:

<p id="0">somecontent</p>

如何删除多余的引号?

最佳答案

那些额外的引号是您放入的 " 字符引用。字符引用是 HTML,因此由 HTML 解析器解析,而不是 JavaScript 解析器。由于 " 是一种表示文字双引号字符的方式,而无需 HTML 解析器对其进行特殊处理,因此解析器认为您打算将其作为属性值的一部分,而这正是您所做的得到。

如果您打算在不干扰 JavaScript 解析器的 HTML 中添加转义引号,请使用反斜杠转义它们或改用单引号:

document.getElementById("results").innerHTML += "<p id=\"" + a + "\">" + i + "</p>";
document.getElementById("results").innerHTML += "<p id='" + a + "'>" + i + "</p>";

您也可以完全忽略它们,除非您出于某种原因正在编写 XHTML:

document.getElementById("results").innerHTML += "<p id=" + a + ">" + i + "</p>";

关于javascript - 为什么在使用 .innerHTML. 在 JavaScript 中设置的 HTML <p> 标签的 ID 上有额外的引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39010621/

相关文章:

javascript - UI 自动化 : Can we automate signing a document?

javascript - Jquery如何使用$(this)获取点击项目的值?

javascript - 如何使用 Javascript 读取 CSS 属性值?

html - 显示图片

php - Javascript变量转为PHP session 变量,然后通过Ajax调用以供多次使用

javascript - 如何使用jquery访问 Canvas ?

html - Joomla - 添加 html 代码到 protostar 的后端模板管理器

jquery - 如何在按钮上重叠滑出导航?

html - CSS悬停div1.img1影响另一个div2.img2

html - 组合 CSS 语法