2013-11-27 16 views
7

Tôi mới sử dụng JavaScript và là một phần của dự án của tôi cho trường đại học tôi cần bao gồm một số. Tôi tạo ra một tập tin .js đơn giản và liên kết nó với file index.html của tôi sử dụng <script src="main.js"></script>Loại vô íchMỗi: Chuỗi không phải là chức năng

Tôi tạo ra một trang khác gọi sellYourHome.html và thêm một thẻ <section> với một bảng và tạo ra một hình thức đơn giản mà tính toán hoa hồng và hiển thị các kết quả trở lại trong trường nhập.

function comCalc() 
{ 
prcHouse = parseFloat(document.getElementById('prcHouse').value); 
commision = 0.25; 
result = prcHouse * commision; 
document.getElementById('prcHouse').value = result.toString(); 
} 

Điều đó có hiệu quả.

Bây giờ theo chức năng đó, tôi muốn tạo một số khác chọn một thành phần <div> và thay đổi màu background-color thành màu xanh dương.

Vì vậy, tôi đã tạo biểu mẫu trên index.html và liên kết cùng một tệp .js với nó theo cùng một cách.

Đây là HTML của tôi:

<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 của tôi là như vậy:

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

Khi tôi chạy này, tôi nhận được lỗi này trên console:

Uncaught TypeError: String is not a function

tôi đang chạy ứng dụng này trong trình duyệt có tên SWRIron (dựa trên Chrome và tuân theo HTML5).

Tôi đang làm gì sai?

+6

Tôi không thấy 'sting' ở bất cứ nơi nào – Brian

+0

Số lần sử dụng Typo của tôi trong cả hai trường hợp =" Chuỗi " – StudentwebCoding

Trả lời

5

Đó là vì tên hàm bạn bgColor, vì bgcolor là một thuộc tính của HTML yếu tố và nó đụng độ với chức năng bgcolor, xử lý trình duyệt của bạn này như một attribute (string) nhưng bạn sử dụng nó như là một chức năng, vì vậy nó nói string is not a function. Vì vậy, thay đổi tên chức năng để bất cứ thứ gì như thế này

function setBgColor(color) 
{ 
    var div = document.getElementById('mainContent'); 
    div.style.background = color; 
} 

Sử dụng nó như

<input type="button" value="blue" onclick="setBgColor('blue');" /> 

Example.

+0

Cảm ơn bạn, Điều đó đã hoạt động hoàn hảo! – StudentwebCoding

+0

@StudentwebCoding, bạn được chào đón :-) –

+3

câu trả lời đúng như vậy ....? – Celt

0

Yes. Vì bgColor là hệ thống dành riêng cho HMTL, nó ném một lỗi gọi là "Uncaught TypeError: String không phải là một hàm". nếu bạn thay đổi tên phương thức, nó sẽ hoạt động tốt và hoạt động tốt.

+0

Điều này không thêm bất kỳ điều gì vào câu trả lời khác. – Scimonster

Các vấn đề liên quan