如果这是发布此类事情的错误地点,我提前道歉,但是我们走了:
以下是我目前在我的网站上实现的代码(感谢此代码charlietfl)
$(document).ready(function(){
var url='http://query.yahooapis.com/v1/public/yql?q=select * from html where url=\'https://stackoverflow.com/\'and xpath=\'//div[@id="question-mini-list"]//h3//a\'&format=json&callback=?';
$.getJSON( url, function(data){
$.each(data.query.results.a, function(){
$('#stack').append('<td><a href="http://stackoverflow.com'+this.href +'">'+this.content+'</a></td>')
})
})
});
我讨厌使用我不完全理解的代码,所以这是我的问题:
在查询的'var url'中,他使用@ id =“question-mini-list”。我查看了stackoverflow的html,并且该名称没有任何内容(我最接近的是一个名为'question-hyperlink'的类),为什么这样做呢?
第二:在'each'中,data.query.results.a我没有在其他地方看到'query'或'results',所以我怎么知道使用那些?
最后一个问题:在'url'结束时为什么'callback =?' ?
非常感谢你! :)
答案 0 :(得分:2)
如果您在stackoverflow.com
上查看来源,您会看到:
<div id="question-mini-list">
<h3><a href="/questions/....">...</a></h3>
...
{ query: { results: { a: [ ... ] } } }
显然callback
needs to be set可以获得JSON输出。
答案 1 :(得分:1)
当你谷歌的东西时,你会惊讶于你会发现什么!
我对XPath一无所知,但我注意到你要问的@id
与XPath有关:
xpath=\'//div[@id="question-mini-list"]
我用谷歌搜索'XPath'并找到一个页面,解释@id
是选择上下文节点的'id'属性的简写。
现在,我确实对你的问题中的下两个点了解了一点,但如果我没有,我肯定Google会告诉我.getJSON()
返回一个数据对象。从查询中,我可以推断出对象的结构类似于:
data: {
query: {
results: {
a: // something
}
}
}
您可以事先知道使用data.query.results.a
,也可以使用控制台发现数据对象的结构。
Google还会向我指出有关解释该问号语法的JSON回调的文档。