这就是我目前正在做的事情。我尝试将json
中的值推送到链接数组中,但在输入数组后,值变为undefined
。有什么更好的方法来移动数据并让它仍然可用?
var links = [];
$.ajax({
url: 'data.json',
dataType: 'json',
type: 'get',
cache: false,
success: function(data) {
$(data.emails).each(function(index, value) {
links.push(value);
});
}
});
//data.json contains:
{
"emails": [{
"source": "1.11913372.-2@multexinvestornetwork.com",
"target": "pallen@enron.com"
}]
}
使用此代码的结果是相同的。值进入数组,但是当您通过链接访问它们时(值的名称),它返回' undefined'
$.each(data.emails, function(index, value) {
links.push(value);
console.log(links);
return value;
});
答案 0 :(得分:0)
我认为您的成功回调代码是错误的,
循环data.emails
的正确方法是,
success: function(data) {
$.each(data.emails, function(index, value) { // <--- change this
links.push(value);
console.log(links); //<--- updated
return value;
});
}
答案 1 :(得分:0)
您在不存在的密钥上调用console.log
。修改代码以调用并打印出数组,而不是随机属性。
var links = [];
$.ajax({
url: 'data.json',
dataType: 'json',
type: 'get',
cache: false,
success: function(data) {
$(data.emails).each(function(index, value) {
links.push(value);
console.log(links);
return value;
});
}
});
答案 2 :(得分:0)
试试这个
<script src="https://code.jquery.com/jquery-1.12.3.min.js"></script>
<script type="text/javascript">
//alert("data");
var links = [];
$.ajax({
url: 'test1.php',
type: 'post',
dataType: 'json',
data: {
}
}).done(function(data) {
$.each(data.emails, function(index, value) {
links.push(value);
console.log(links);
return value;
});
});
function getVal(){
console.log(links[0].target);
}
</script>
<button onclick="getVal()">Get target</button>