0

この API からモバイル リンクを取得しようとしましたが、成功しませんでした

.done(function( data ) {    
                var ol = $("<ol/>");

            $.each( data.headlines, function(h_key, headlines) {
var h2 = $( "<h2/>" ).append(headlines.headline);
 var a = $( "<a/>" ).attr("href", headlines.links.mobile);

ol.append(h2)
 ol.append(a)

これは、リンクを取得しようとしている応答本文です

{
"timestamp": "2013-10-21T14:50:18Z",
"resultsOffset": 0,
"status": "success",
"resultsLimit": 10,
"resultsCount": 27,
"headlines": [{
    "headline": "Portugal land Sweden in playoff draw",
    "keywords": ["UEFA WCQ: Portugal land Sweden in playoff draw"],
    "lastModified": "2013-10-21T14:17:13Z",
    "audio": [],
    "premium": false,
    "mobileStory": "",
    "links": {
        "api": {
            "news": {
                "href": "http://api.espn.com/v1/sports/news/1588808?region=GB"
            }
        },
        "web": {
            "href": "http://espnfc.com/news/story/_/id/1588808/portugal-land-sweden-playoff-draw?ex_cid=espnapi_public"
        },
        "mobile": {
            "href": "http://m.espn.go.com/soccer/story?storyId=1588808&ex_cid=espnapi_public"
        }
    },
4

2 に答える 2

1

headlines配列です。また、mobileドリルダウンする別のコンポーネントがまだあります。これを試して:

headlines[0].links.mobile.href

headlinesもちろん、インデックスを作成する前に、要素が存在することを確認するために、実行時チェックを追加することをお勧めします。

このようなことをテストする良い方法は、ブラウザのデバッグ ツールです。通常、デバッガーにブレーク ポイントを配置して、JSON オブジェクトの構造を確認できます。JavaScript コンソールでそのオブジェクトのコンポーネントを参照する試行錯誤を少し行うと、その構造をナビゲートするのに役立ちます。

編集:配列を反復していることに気付いたので、可能性が高い:

headlines.links.mobile.href

headlines混乱を招く可能性があるため 、反復子変数の名前を から変更することをお勧めします。headline賢明な代替案のようです。

于 2013-10-22T09:48:02.880 に答える
0

これを試して、

var h2 = $( "<h2/>" ).append(headlines[0].headline);
var a = $( "<a/>" ).attr("href", headlines[0].links.mobile.href);
于 2013-10-22T10:20:27.133 に答える