Javascript 如何基于所选值加载JSON数据
我是新手,不知道自己做错了什么 在我的json文件中,我有几行代码,但我只需要记录请求的代码Javascript 如何基于所选值加载JSON数据,javascript,arrays,json,Javascript,Arrays,Json,我是新手,不知道自己做错了什么 在我的json文件中,我有几行代码,但我只需要记录请求的代码 <a href="#" id="get-data" data-id="100" data-foo="100">Get JSON data</a> <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> <script> $('#get-data
<a href="#" id="get-data" data-id="100" data-foo="100">Get JSON data</a>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
$('#get-data').click(function () {
var myDiv = document.querySelector('#get-data');
var mySetValue = myDiv.dataset.foo
console.log (mySetValue)
var showData = $('#show-data');
var url = 'example.json';
var data = {
value: mySetValue
};
$.getJSON(url, data)
console.log(data);
});
</script>
我只需要加载与按钮的数据foo相关联的数据,但我只得到一个值作为返回
我做错了什么
提前感谢我注意到您正在使用Jquery作为API,在Jquery中有一个ajax函数,您可以使用它来帮助从ajax文件/响应中获取信息 阅读更多关于 您的代码将产生如下结果
$.ajax({
url: '/file.json',
success: function(data){
console.log(data);
}
});
可能发生的问题
async function main(){
var result = await getAssycFunction();
console.log(result);
}
function getAssycFunction(){
return new Promise((result, reject) =>{
result("Result");
});
}
正如你在评论中问我的那样,要分离这些值,没有“神奇的函数”,但可以做的是一个循环,它穿过所有的房子,在第二个数组中只分离你想要的那些房子
var values = [];
for (var i = 0; i < data.length ; i++) {
if (data[i]['value'] == 100) {
values.push(data[i]);
}
}
result(values);
var值=[];
对于(变量i=0;i
一个小提示:在分离变量时,不想对最终用户隐藏信息,一旦您有一个Ajax请求,用户就可以访问Ajax文件以便能够读取。作为回调缺少处理程序?异步问题?您知道
$.getJSON(url,数据)
进行异步调用吗?谢谢您的回复。我可以使用json或ajax获取整个文件,但我只想从文件中提取值为100的数据。不是全部。当Jquery返回一个数据时,它恢复一个对象,可以从该对象中选择项目,如果它返回一个数组,请稍候,我正在编辑这个,以获得一个更完整的答案,可以帮助您。抱歉,有点大,但我认为这应该能回答你的问题。难道没有其他方法来解决这个问题吗?我的意思是,我试图从json文件中选择某些数据。最好的方法是什么?
var values = [];
for (var i = 0; i < data.length ; i++) {
if (data[i]['value'] == 100) {
values.push(data[i]);
}
}
result(values);