未捕获的类型错误:字符串不是函数

Posted

技术标签:

【中文标题】未捕获的类型错误:字符串不是函数【英文标题】:Uncaught TypeError: String is not a function 【发布时间】:2013-12-13 15:05:50 【问题描述】:

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

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

function comCalc()

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

那行得通。

现在,在该函数下,我想创建另一个函数,它获取 <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>

我的 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;  

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

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

我做错了什么?

【问题讨论】:

我在任何地方都没有看到sting My appolgies Typo sting in both instances = "String" 【参考方案1】:

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

function setBgColor(color)

    var div = document.getElementById('mainContent');
    div.style.background = color;

把它当做

<input type="button" value="blue" onclick="setBgColor('blue');" />

Example.

【讨论】:

【参考方案2】:

是的。由于 bgColor 是系统为 HMTL 保留的,因此它会引发一个名为“Uncaught TypeError: String is not a function”的错误。如果更改方法名称,它将正常工作。

【讨论】:

这不会为其他答案添加任何内容。

以上是关于未捕获的类型错误:字符串不是函数的主要内容,如果未能解决你的问题,请参考以下文章

未捕获的类型错误未定义不是函数

未捕获的类型错误:$ 不是函数 [重复]

未捕获的类型错误:无法读取未定义的属性“toUpperCase”

自定义模块:未捕获类型错误:未定义不是函数

未捕获的类型错误:$(...).size 不是函数

未捕获的类型错误:$(...).magnificPopup 不是函数