未捕获的类型错误:字符串不是函数
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
,因为bgcolor
是HTML
元素的一个属性,它与你的函数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”的错误。如果更改方法名称,它将正常工作。
【讨论】:
这不会为其他答案添加任何内容。以上是关于未捕获的类型错误:字符串不是函数的主要内容,如果未能解决你的问题,请参考以下文章