JS if 语句-innerHTML
Posted
技术标签:
【中文标题】JS if 语句-innerHTML【英文标题】:JS if statement - innerHTML 【发布时间】:2013-05-28 16:37:28 【问题描述】:function colorize()
for(i = 1; i<=8; i++)
var id = document.getElementById('op' + i);
var stat = id.innerhtml;
document.write(stat + " ");
if(stat == 1)
id.innerHTML = "<div style='background:#00FF00; width: 20px; height: 20px; border-radius: 15px;'></div>";
else
id.innerHTML = "<div style='background:#FF0000; width: 20px; height: 20px; border-radius: 15px;'></div>";
它应该检查是否有 1 或 0 并将其替换为绿色或红色圆圈,但我只得到红色圆圈。
“stat”打印给了我一个“0 0 0 1 1 1 1 1”,但它似乎不适用于 if 语句。有人知道为什么吗?
【问题讨论】:
stat 是一个字符串,1 是一个数字。试试 stat == "1" 试过了,结果还是一样 @Thilo,是的,你是对的,它可能是 innerHtml 中的一个空格...... 虽然也不是这样...... 你能在 if 和 else 分支中添加一个 document.write 并发布结果吗? innerHtml 中是否有单个 1 或 0? 【参考方案1】:如果stat.length
始终等于 1:
if(stat[0]=='1')
如果您正在寻找的只是1
中的stat
:
if(stat.match(/1/))//contains a 1, may contain more
【讨论】:
谢谢!我对 stat.length 进行了打印,它返回 30 ,所以我发现我正在寻找的是 stat[22] @IgorGumush 哦,天哪,看起来那是你的问题。另外,下一次,给我们一些关于op[0-9]
div 的信息
虽然在这种特殊情况下它并不重要(那么多),但不应使用match
来检查字符串是否与模式匹配:改用/pattern/.test(string)
。或者,如果您只需要检查某个字符串是否包含另一个字符串,请使用someStr.indexOf(anotherStr) !== -1
。【参考方案2】:
function colorize()
for(i = 1; i<=8; i++)
var id = document.getElementById('op' + i);
var stat = id.innerHTML;
document.write(stat + " ");
if(stat == "1")
id.innerHTML = "<div style='background:#00FF00; width: 20px; height: 20px; border-radius: 15px;'></div>";
else
id.innerHTML = "<div style='background:#FF0000; width: 20px; height: 20px; border-radius: 15px;'></div>";
【讨论】:
以上是关于JS if 语句-innerHTML的主要内容,如果未能解决你的问题,请参考以下文章
if...else if...else和switch语句的注意点,以及和js的if...else if...else的不同