2013-11-27 3 views
7

Я новичок в JavaScript и как часть моего проекта для колледжа, мне нужно включить некоторые из них. Я создал простой файл .js и связал его с моим файлом index.html с помощью <script src="main.js"></script>Uncaught TypeError: String не является функцией

Я создал еще одну страницу под названием 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> 

Мой браузер так:

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-complient).

Что я делаю неправильно?

+6

Я не вижу «жало» в любом месте – Brian

+0

Мои причёски Типовое жало в обоих случаях = «String» – StudentwebCoding

ответ

5

Это из-за вашего имени функции 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.

+0

Спасибо, это сработало отлично! – StudentwebCoding

+0

@StudentwebCoding, вы можете :-) –

+3

правильный ответ так ....? – Celt

0

Да. Поскольку bgColor зарезервирован для системы HMTL, он выдает сообщение об ошибке «Uncaught TypeError: String не является функцией». если вы измените имя метода, оно будет работать нормально и отлично работает.

+0

Это ничего не добавляет к другому ответу. – Scimonster

Смежные вопросы