我正在尝试将 ID 为“results”的 div 的内容设置为具有变量 (i) 的值。我还想将元素的 ID 设置为另一个变量 (a) 的值。
var i="somecontent";
var a=0;
document.getElementById("results").innerHTML += "<p "
+ "id=" + """ + a + "" " + "\>" + 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/