我是JavaScript的新手,作为我大学项目的一部分,我需要包含一些内容。我创建了一个简单的.js文件,并使用<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();
}
那很有用。
现在,根据该功能,我想创建另一个获取<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;
}
当我运行它时,我在控制台上收到此错误:
未捕获的TypeError:字符串不是函数
我在一个名为SWRIron的浏览器中运行它(它基于Chrome并且是HTML5兼容的)。
我做错了什么?
答案 0 :(得分:5)
这是因为您的函数名称为bgColor
,因为bgcolor
是HTML
元素的属性,并且它与您的函数bgcolor
发生冲突,因此浏览器会将其视为attribute
1}}(字符串)但你用它作为一个函数,所以它说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');" />
答案 1 :(得分:0)
是。由于bgColor是为HMTL保留的系统,因此会抛出一个名为&#34; Uncaught TypeError的错误:字符串不是函数&#34;。如果您更改方法名称,它将正常工作并正常工作。