2013-11-27 15 views
7

私はJavaScriptが初めてです。私の大学のプロジェクトの一環として、いくつかを含める必要があります。私はsellYourHome.htmlと呼ばれる別のページを作成し、テーブルと<section>タグを追加してcomissionを算出し、簡単なフォームを作成し、バックの結果を表示する簡単な.jsファイルを作成し、<script src="main.js"></script>未知の型エラー:文字列は関数ではありません

を使用して、私の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

IこれをSWRIron(Chromeをベースとし、HTML5に準拠したブラウザ)というブラウザで実行しています。

私は間違っていますか?

+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

としてそれを使用してください。 bgColorはHMTL用に予約されているシステムなので、 "Uncaught TypeError:String is not a function"というエラーがスローされます。メソッド名を変更すると、正常に動作し、正常に動作します。

+0

これは他の答えに何も追加しません。 – Scimonster