Javascript indexOf 和替换 - 我错过了什么吗

标签 javascript function indexof

我有这个javascript函数; 我通过按钮向它发送一个数字,一切都很顺利,直到索引方法出现问题。

代码:

   <script lang="ja" type="text/javascript">


    function YellowChair(NumId)
    {
        if (document.getElementById("CheckBox" + NumId).checked)
        {
            document.getElementById("ChairImg" + NumId).src = "Images/YellowChair.png";
            TypeTheNum(NumId, true);
        }
        else
        {
            document.getElementById("ChairImg" + NumId).src = "Images/BlueChair.png";
            TypeTheNum(NumId, false);
        }

    }
    function TypeTheNum(NumId,Add)
    {
        var Label = document.getElementById("SelectedSitsLabel");
        var Hidden = document.getElementById("SelectedSitsHidden");


        if (Label.innerHTML == "")
        {
            Label.textContent += NumId;
            Hidden.textContent += NumId;
        }
        else
        {
            if (Add)
            {
                Label.textContent += "," + NumId;
            }
            else
            {
         // getting stuck here.
                if (Label.indexOf((NumId + ",").toString()) != -1)
                {
                    alert("1");
                    Label.replace((NumId + ",").toString(), "");
                }
                else
                {
                    alert("ELSE");
                    Label.replace(("," + NumId).toString(), "");
                }
            }
        }
        Hidden.textContent = Label.textContent;
    }


</script>

我想可能是因为我用 textContent 插入了文本, 另外,我很确定替换有问题。

非常感谢!

最佳答案

HTMLElement 没有方法 indexOf。String 拥有该方法。如果 textContent 则请重置 textContent改变了。

    function YellowChair(NumId)
    {
        if (document.getElementById("CheckBox" + NumId).checked)
        {
            document.getElementById("ChairImg" + NumId).src = "Images/YellowChair.png";
            TypeTheNum(NumId, true);
        }
        else
        {
            document.getElementById("ChairImg" + NumId).src = "Images/BlueChair.png";
            TypeTheNum(NumId, false);
        }

    }
    function TypeTheNum(NumId,Add)
    {
        var Label = document.getElementById("SelectedSitsLabel");
        var Hidden = document.getElementById("SelectedSitsHidden");


        if (Label.innerHTML == "")
        {
            Label.textContent += NumId;
            Hidden.textContent += NumId;
        }
        else
        {
            if (Add)
            {
                Label.textContent += "," + NumId;
            }
            else
            {
         // getting stuck here.
                if (Label.textContent.indexOf((NumId + ",").toString()) != -1)
                {
                    alert("1");
                    Label.textContent=Label.textContent.replace((NumId + ",").toString(), "");
                }
                else
                {
                    alert("ELSE");
                    Label.textContent=Label.textContent.replace(("," + NumId).toString(), "");
                }
            }
        }
        Hidden.textContent = Label.textContent;
    }
<button onclick="TypeTheNum('foo')">Remove `foo`</button>
<div id="SelectedSitsLabel">foo,bar,baz</div>
<div id="SelectedSitsHidden"></div>

关于Javascript indexOf 和替换 - 我错过了什么吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42583491/

相关文章:

CodeIgniter 为所有 Controller 调用相同的函数

javascript - indexOf() 函数不适用于数组

java - StringUtil indexOf() 等效的 postgreSQL 查询

javascript - onMouseOver 改变背景图片位置

Javascript decodeURI(Component) 格式错误的 uri 异常

javascript - “中央”删除前确认或JS中的多个版本

c++ - "ContainsElement"和 "DoesContainElement"之间哪个更常规的函数名称?

vb.net - 在 VB.NET 中,我可以将函数标记为已弃用吗?

Java用未知索引替换arraylist中的对象

javascript - HTTP API 调用拒绝接受数据字段