2016-06-09 95 views
0

下面是代码:为什么我从这段代码中得到一个JavaScript错误?

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    <title>An app</title> 

    </head> 
    <body> 
    <p id='namespace'> Namelist </p> 
    <button id="display" type="button">Display numbers</button></br> 
    <button id="likebutton" type="button">Like</button> 
    <button id="dislikebutton" type="button">Dislike</button> 

    </body> 

    <script type="text/javascript" src="http://code.jquery.com/jquery-1.12.1.min.js"></script> 
    <script> 
    $(document).ready(function(){ 
    var names = ['Hannah', 'Lucy', 'Brenda', 'Lauren', 'Mary']; 
    var liked = []; 
    var disliked = []; 



    function showName(){ 
     var name = names[0]; 
     if (!name){ 
     name = 'Out of people'; 
     } 
     document.getElementById('namespace').innerHTML = name; 
    } 
    function like(){ 
     liked.push(names[0]); 
     names.splice(0, 1); 
     showName(); 
    } 
    function dislike(){ 
     disliked.push(names[0]); 
     names.splice(0, 1); 
     showName(); 
    } 

    showName(); 
    document.getElementById('likeButton').onclick = like; 
    document.getElementById('dislikeButton').onclick = dislike; 

}); 
    </script> 
</html> 

电流误差这样说:uncaught TypeError: Cannot set property 'onclick' of null

我用Google搜索这个错误,这似乎是关于DOM,也许怎么要素还没有完全加载到的东西网页或什么?

我希望解决方案在用户点击喜欢或不喜欢按钮后弹出不同的名称。然后在数组的末尾,文本将不会显示更多人。

+0

'likeButton'和'dislikeButton'应该是完整的小案例,对不对? – RRK

回答

0

你的按钮的id是likebutton和你得到它通过likeButton

变化

document.getElementById('likeButton').onclick = like; 

document.getElementById('likebutton').onclick = like; 

同样是dislikebutton的情况。

+0

谢谢,非常想念那个。你知道我怎么才能看看控制台中的数组?我有控制台打开并开始键入liked.length但它告诉我喜欢没有定义? – Areeety

+0

您可以在要检查控制台的行之前编写'debugger;',以查看数组的值或任何您想要的值。另外,不要忘记将答案标记为已接受的答案。 – Mairaj

相关问题