-2

如果这是发布此类内容的错误位置,我提前道歉,但我们开始吧:

这是我目前在我的网站上实现的代码(感谢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'的类),那么为什么会这样呢?

第二:在“每个”中,data.query.results.a 我没有看到“查询”或“结果”在其他任何地方使用,所以我怎么知道使用这些?

最后一个问题:在你的 'url' 末尾为什么 'callback=?' ?

太感谢了!:)

4

2 回答 2

2
  1. 如果您查看源代码,stackoverflow.com您会看到:

    <div id="question-mini-list">

    <h3><a href="/questions/....">...</a></h3>

    ...

  2. YQL 结果 JSON 对象如下所示:

    { query: { results: { a: [ ... ] } } }

  3. 显然callback需要设置才能获取 JSON 输出。

于 2013-06-18T15:14:50.267 回答
1

当您使用 Google 搜索某些内容时,您会惊奇地发现!

我对 XPath 一无所知,但我注意到@id您所问的问题与 XPath 有关:

xpath=\'//div[@id="question-mini-list"]

我在 Google 上搜索了“XPath”并找到了一个页面,该页面解释@id了选择上下文节点的“id”属性的简写。

现在,我确实对您问题中的下两点有所了解,但如果我不知道,我相信谷歌会告诉我.getJSON()返回一个数据对象。从查询中,我可以推断出对象的结构类似于:

data: {
    query: {
        results: {
            a: // something
        }
    }
}

您可以提前知道要使用data.query.results.a,也可以使用控制台发现数据对象的结构。

Google 还会向我指出有关解释问号语法的 JSON 回调的文档。

于 2013-06-18T15:20:50.047 回答