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的主要内容,如果未能解决你的问题,请参考以下文章

js中的if判断语句和switch条件分支语句

if...else if...else和switch语句的注意点,以及和js的if...else if...else的不同

2020/6/28 JS流程控制语句和循环语句

JS流程控制(语句)

js中if条件语句以及switch条件语句的使用

js - if-else语句