我有一个 HTML 文本,文本中必须包含  
,然后我使用 Javascript 获取 innerHTML
并进行比较,但它不起作用.
var x = randomGen();
document.getElementById("c"+x[0]).innerHTML="  a, b, c  ";
document.getElementById("c"+x[1]).innerHTML="  c, d, e  ";
document.getElementById("c"+x[2]).innerHTML="  f, g, h  ";
document.getElementById("c"+x[3]).innerHTML="  a, a, a  ";
function checkans(ans){
if (ans=="  a, a, a  ") {
alert(ans);
}
}
HTML 正文:
<div class="ans" id="c1" onclick="checkans(this.innerText)"></div>
<div class="ans" id="c2" onclick="checkans(this.innerText)"></div>
<div class="ans" id="c3" onclick="checkans(this.innerText)"></div>
<div class="ans" id="c4" onclick="checkans(this.innerText)"></div>
所有情况都返回 false。
最佳答案
and then I use Javascript to get the innerHTML and do the comparison
这不是真的。很明显,您使用的是 innerText
,而不是 innerHTML
,而且它们不是同一回事。
如果您确实使用 innerHTML
,请更正您的代码以使用
(浏览器会自动将您的 &nsbp
更改为 &nsbp;
当您将它们分配给 .innerHTML
时,代码可以工作:
var x = [3, 2, 1, 4]
document.getElementById("c" + x[0]).innerHTML = " a, b, c ";
document.getElementById("c" + x[1]).innerHTML = " c, d, e ";
document.getElementById("c" + x[2]).innerHTML = " f, g, h ";
document.getElementById("c" + x[3]).innerHTML = " a, a, a ";
function checkans(ans) {
if (ans == " a, a, a ") {
alert(ans);
}
}
<div>Click the "a, a, a" option to see an alert box</div>
<div class="ans" id="c1" onclick="checkans(this.innerHTML)"></div>
<div class="ans" id="c2" onclick="checkans(this.innerHTML)"></div>
<div class="ans" id="c3" onclick="checkans(this.innerHTML)"></div>
<div class="ans" id="c4" onclick="checkans(this.innerHTML)"></div>
关于Javascript字符串包含 " "无法匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42671659/