2013-11-27 48 views
7

我是新来的JavaScript,并作为大学里的项目的一部分,我需要包括一些。我创建了一个简单的.js文件并将其链接到使用<script src="main.js"></script>遗漏的类型错误:字符串不是一个函数

我创建了一个名为sellYourHome.html另一页,并增加了<section>标签有一张桌子和创建了一个简单的表格,计算comission,并将结果显示回我的index.html文件在输入字段中。

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; 
} 

当我运行它,我得到的控制台上的错误:

Uncaught TypeError: String is not a function

我我在一个叫SWRIron浏览器中运行的(这是基于浏览器和HTML5是-complient)。

我在做什么错?

+6

我不会在任何地方看到任何'sting' – Brian

+0

我的朋友在两个实例中输入错字=“String” – StudentwebCoding

回答

5

这是因为你的函数名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.

+0

谢谢,完美无缺! – StudentwebCoding

+0

@StudentwebCoding,欢迎您:-) –

+3

正确答案等等....? – Celt

0

是。由于博客上的系统保留HMTL,它抛出所谓错误“遗漏的类型错误:字符串是不是一个函数”。如果您更改方法名称,它将正常工作并正常工作。

+0

这不会给对方的回答添加任何东西。 – Scimonster

相关问题