2015-08-10 20 views
10

Tôi biết điều này được hỏi một vài lần về S.O.Cú phápError: biểu thức mong đợi, có '<', điều đó có nghĩa là gì?

nhưng không có câu trả lời nào phù hợp với tình huống của tôi. Vì vậy, tôi có một trang Html cơ bản cố gắng sử dụng một JS bên ngoài. Tệp JS cố gắng thay đổi nội dung của một đoạn được xác định trong HTML khi nhấp vào nút, nhưng dường như không hoạt động.

Tôi thấy các lỗi sau đây trong giao diện điều khiển:

1) Lỗi Cú pháp: dự kiến ​​biểu hiện, có '<'

2) ReferenceError: thay đổi không được định nghĩa

JSFiddle cho thấy nguồn chính xác (trừ? rằng & thẻ được gỡ bỏ như jsfiddle - http://jsfiddle.net/p9ko4yde/

HTML Code:

<h1> Numbers with external script:) </h1> 
<p id="number">1</p> 
<button type="button" onclick="change()">Toggle between 1 and 2</button> 

<script src="myScript.js"></script> 



</body> 
</html> 

Mã JS:

<script type="text/javascript"> 
    function change(){ 
     var number = document.getElementById('number').innerHTML; 
     if(number == '1'){ 
      document.getElementById('number').innerHTML='2'; 
     } 
     else{ 
      document.getElementById('number').innerHTML='1'; 
     } 
    } 
</script> 

Cấu trúc tập tin như sau: enter image description here

+0

điều này cũng có thể xảy ra khi lỗi tập lệnh phía máy chủ và loại bỏ một số HTML, nhưng làm như vậy trong ngữ cảnh được nhúng –

Trả lời

16

Bạn không cần <script> thẻ khi trong một tập tin .js bên ngoài. Sử dụng các thẻ này để nhúng tập lệnh bên trong HTML.

+2

Hơn nữa, bất kỳ thẻ HTML nào bên trong tệp .js đều là bất hợp pháp. – hindmost

2

Trong tệp js, bạn không sử dụng HTML để khai báo rằng đó là tệp js. Vì vậy, bạn có thể thả thẻ script trong MyScript và thay đổi nó như thế này:

function change(){ 
    var number = document.getElementById('number').innerHTML; 
    if(number == '1'){ 
     document.getElementById('number').innerHTML='2'; 
    } 
    else{ 
     document.getElementById('number').innerHTML='1'; 
    } 
} 
3

Lỗi cú pháp là bởi vì bạn có <script> thẻ trong tập tin JS của bạn. Khi bạn đặt JavaScript vào tập tin riêng của nó như thế, bạn không cần phải bao quanh nó với các thẻ script; đó là HTML và đây là tệp JavaScript.

Lỗi tham chiếu đang xảy ra vì, do lỗi cú pháp, tệp JS không thực thi đúng và do đó chức năng thay đổi không bao giờ được tạo - sửa lỗi cú pháp cũng nên giải quyết vấn đề này.

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