如何访问api中的对象在jquery中更改?

时间:2015-12-08 15:58:36

标签: javascript jquery json

简短说明 - 有4个选择通过ONCHANGE启用的函数选择每个选项,将val带入维基百科API的URL。

问题 - 每当我选择Select Another example时,我想要出现在标题中。 wiki.query.pages [number] .title 问题是,每次我想要访问它时,数字都会有所不同。



    <!DOCTYPE HTML>
<html lang="en-US">
<head>
	<meta charset="UTF-8">
	<title></title>
	<style>
	.textim {
		width: 500px;
		height: 500px;
		border: 2px solid brown;
		float: left;
	}
	</style>
</head>
<body>

<select onchange="abc()">
  <option value="israel" >Israel</option>
  <option value="england">England</option>
  <option value="russia">Russia</option>
  <option value="spain">Spain</option>
</select>

<div class="textim"></div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script>
function abc() {
	var ttls = $( "select" ).val()
	var url = 'https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro=&explaintext=&titles='+ttls + "&callback=?";
	$.getJSON( url, function ( wiki ) {
		
		console.log(wiki);
	
		
		console.log(wiki.query.normalized[0].to);
		$('.textim').text( wiki.query.normalized[0].to );
		
	});
}
</script>


</body>
</html>
&#13;
&#13;
&#13;

由于

1 个答案:

答案 0 :(得分:0)

您需要一个可以将对象属性作为键的函数。

var getKeys = function(obj){
   var keys = [];
   for(var key in obj){
      keys.push(key);
   }
   return keys;
}

然后调用它,传递你的对象。在你的情况下:

getKeys(wiki.query.pages)[0]

将返回一个数字。

获取你的摘录:

wiki.query.pages[getKeys(wiki.query.pages)[0]].extract