我有一个php文件,在调用时返回一个简单的非关联字符串值数组。当我使用jQuery get例程请求数组时,我得到了我期望的数组,但是当我尝试迭代它时,$ .each命令迭代每个char,而不是获取两个字符串值。我不明白我的错误。
我的代码:
<div name ="test_spot" id ="test_spot" width="200" height="400">Test</div>
<script type="text/javascript">
function getOutput(){
$.get( "data.php", function( data ) {
// This call verifies the the array is what I would expect.
// ["one","two"]. Then I comment this out and run the code below.
//$( "#test_spot" ).html( data);
$.each(data, function(index, value){
// This outputs each char instead of each string each on its own line in the div.
// [
// "
// o
// n
// e etc
$('#test_spot').append($('<p>').text(value));
});
});
}
</script>
<button onClick="getOutput()" style="height: 60px; width:100px;" >Test</button>
感谢您的帮助。
答案 0 :(得分:3)
您期待一个对象,但正在返回一个JSON字符串。当您将其传递给.each
时,它会迭代字符串中的字符。
尝试将dataType
指定为json
,如下所示:
$.get( "data.php", function( data ) {
$.each(data, function(index, value){
$('#test_spot').append($('<p>').text(value));
});
}, "json" );
或者,就像charlietfl指出的那样,只需使用
$.getJSON( "data. php", function( data ) {
$.each(data, function(index, value){
$('#test_spot').append($('<p>').text(value));
});
});
如果仍然无效,我会查看输出并确保它是有效的JSON。