未捕获的TypeError:String不是函数

Stu*_*ing 7 html javascript css

我是JavaScript的新手,作为我大学项目的一部分,我需要包括一些.我创建了一个简单的.js文件,并使用它将其链接到我的index.html文件<script src="main.js"></script>

我创建了另一个名为的页面,sellYourHome.html并添加了一个<section>带有表的标签,并创建了一个简单的表单来计算一个委托,并在输入字段中显示结果.

function comCalc()
{
 prcHouse = parseFloat(document.getElementById('prcHouse').value);
 commision =  0.25; 
 result = prcHouse * commision;
 document.getElementById('prcHouse').value = result.toString();
}
Run Code Online (Sandbox Code Playgroud)

那很有效.

现在在这个函数下,我想创建另一个拾取<div>元素并更改为background-color蓝色的元素.

所以我创建了一个表单index.html并以相同的方式将相同的.js文件链接到它.

这是我的HTML:

<div id="mainContent">
    <p>hello</p>
    <form id="bgColor">
        <table>
            <tr>
                <td>
                    <input type="button" value="blue" onclick="bgColor('blue');">
                </td>
            </tr>
        </table>
    </form><!-- end of bgColor Form-->
</div>
Run Code Online (Sandbox Code Playgroud)

我的javascript就像这样:

function comCalc()
{
    prcHouse = parseFloat(document.getElementById('prcHouse').value);
    commision =  0.25;  
    result = prcHouse * commision;
    document.getElementById('prcHouse').value = result.toString();
}

function bgColor(color)
{
  var div = document.getElementById('mainContent');
  div.style.background=color;  
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我在控制台上收到此错误:

未捕获的TypeError:String不是函数

我在一个名为SWRIron的浏览器中运行它(它基于Chrome并且是HTML5兼容的).

我究竟做错了什么?

The*_*pha 5

这是因为你的函数名称bgColor,因为它bgcolorHTML元素的一个属性,它与你的函数冲突bgcolor,浏览器将其视为attribute(字符串),但你将它用作函数,所以它说string is not a function.因此,将函数名称更改为此类其他任何内容

function setBgColor(color)
{
    var div = document.getElementById('mainContent');
    div.style.background = color;
}
Run Code Online (Sandbox Code Playgroud)

用它作为

<input type="button" value="blue" onclick="setBgColor('blue');" />
Run Code Online (Sandbox Code Playgroud)

例.