2013-01-19 29 views
0

我想学习如何调试jQuery。我试图制作一个页面,它将动态地添加输入实体。数据被发送到jquery。现在进行调试,我试图console.log整个数组,但我在Firefox收到此错误:使用从HTML采取的JavaScript打印数据

[17:40:27.073] HTML文档的字符编码不 声明。如果文档包含来自 US-ASCII范围之外的字符,则该文档将在某些浏览器 配置中以乱码文本进行呈现。页面的字符编码必须在 文档或传输协议中声明。 @ 文件:///Users/ateevchopra/Desktop/takemehome%20dynamic/TakeMeHome/index.html

请解释这是什么意思的,如果在我的代码中的一些错误。我的继承人代码

HTML:

<!doctype html> 
<html> 

<head> 
    <title>TakeMeHome</title> 

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
    <script type="text/javascript" src="js/jquery-1.4.2.min.js"></script> 
    <script type="text/javascript" src="js/jquery-ui-1.8.1.custom.min.js"></script> 
    <script type="text/javascript" src="js/main.js"></script> 
    <script type='text/javascript' src='js/app.js'></script> 

    </head> 

    <body> 
    <center><form id="details"> 
     Your Place:<input id="source" type="text"><br><br> 
     Friend1:<input id="friend1" type="text"><br><br> 
     <div id="friends"></div> 
     <div id="button">Add!</div><br><br> 

     <input type="submit" value="go"> 
    </form> 
    </body> 

</html> 

的jQuery:

var j=2; 
var friends = []; 


$(document).ready(function(){ 

    $('#button').click(function(){ 
     if(j<11){ 
      $('#friends').append('Friend'+j+':<input type="text" id="friend'+j+'"/><br/><br/>'); 
     j++; 
     } 
    else 
     { 
    alert("Limit reached"); 
    } 
    }); 



}); 


$("form").submit(function(){ 

    friends[0] = ('#source').val(); 
    for(var i=1;i<j;i++) 
    { 
     friends[i] = ('#friends'+i+'').val(); 
    } 

    console.log(friends); 
}); 

回答

1

你的代码是可以正常使用,你可以看到它来自this console.log很适合调试,但我更喜欢使用firebug进行调试。 使用萤火虫,你可以调试每一行,你也可以查看每个变量的值。 我用firefox的firebug。 你可以从那个link下载firefox for firefox。我希望它可以帮助你。

+0

嘿,我看着jsfiddle。我收到的警报每次都说“开除”。但它应该显示我输入的朋友列表。为什么没有来? – user1263375

+0

我更新了小提琴现在它将为您提供var f中的朋友。我也对做了一些更改。现在它会为您提供所有的文本框,并且您可以从每个文本框中获取值表单。[jsfile](http://www.jsfiddle.net/fqQLC/1/) –

+0

仍然我没有获得该列表! – user1263375

1

错误无关使用JavaScript。

如果您添加一个元标记,如<meta charset="UTF-8" />它应该是固定的。

我也看到你有一个类型的文档类型声明。

+0

但是无论何时我在浏览器中尝试此操作,我都没有收到我输入的所有朋友名称的提醒。 ? – user1263375

+0

那是因为你在你的js中有错误,其中一个错误就是看到你有多个jquery文件。在同一页面上包含不同版本的jquery可能会导致冲突。 – defau1t

+0

我应该删除哪一个? – user1263375

1

这不是您的Javascript代码中的错误,而是Firefox针对实际HTML标记的有效性发出的一般警告。

该文档的编码应在header标记内声明一个meta标记。例如,如果你的编码是UTF-8将是:

<head> 
    ... 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    ... 
</head> 

由于您的文档类型为HTML5,你也可以使用charset属性:

<head> 
    ... 
    <meta charset="UTF-8"> 
    ... 
</head>