2010-07-26 64 views
0

這是我的代碼來獲取「的GUID的nodeValue在我的代碼:如何使用谷歌AJAX供稿API

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/> 
    <title>Google AJAX Feed API - Simple Example</title> 
    <!--<script type="text/javascript" src="http://www.google.com/jsapi"></script>--> 
    <script type="text/javascript" src="http://www.google.com/jsapi"></script> 
    <script type="text/javascript" src='jquery-1.4.2.js'></script> 
    <script type="text/javascript"> 

    google.load("feeds", "1"); 
    function initialize() { 
     var feed = new google.feeds.Feed("http://maps.google.com/maps/ms?ie=UTF8&hl=zh-CN&vps=1&jsv=259e&msa=0&output=georss&msid=109685068115364659392.00048b5b630141d82b83a"); 

     feed.setResultFormat(google.feeds.Feed.MIXED_FORMAT); 
     feed.load(function(result) { 
      if (!result.error) { 
      for (var i = 0; i < result.feed.entries.length; i++) { 
       var entry = result.feed.entries[i]; 
      var guid=entry.xmlNode.getElementsByTagName("id") || entry.xmlNode.getElementsByTagName("guid") ||0 
      //console.log($('id',entry.xmlNode.xmlDocument)||$('guid',entry.xmlNode.xmlDocument)) 
      console.log(guid) 
      } 
      } 
     }); 
    } 
    google.setOnLoadCallback(initialize); 

    </script> 
    </head> 
    <body> 
    <div id="feed"></div> 
    </body> 

和我的代碼沒有得到什麼,

使用jQuery的方法文字()或HTML(),但不是太,

所以我能做些什麼。

感謝

回答

0

嘗試

$(entry.xmlNode).find('guid').text() 

$('guid', entry.xmlNode).text() 

但是,你不能這樣做:

$(something) || $(somethingElse) 

,因爲代碼將永遠到不了$(somethingElse),因爲即使沒有找到匹配,也會返回一個jQuery對象。一個對象(甚至是一個空的jQuery對象)是truthy,因此無論$(somethingElse)的值如何,JavaScript表達式都會變爲true,JavaScript會跳過對它的完全評估。它被稱爲short-circuit evaluation。如果你想通過"id"先找到,然後通過"guid",然後嘗試:

var xml = entry.xmlNode; 
var guid = $('id', xml).text() || $('guid', xml).text() || 0; 
console.log(guid); 

這部作品的原因是因爲我們正試圖在表達的每一步得到一個字符串,而不是一個對象。一個空字符串在JavaScript中是虛僞的,因此表達式如下:

"" || 42; // 42 
"" || (40 + 2); // 42 

將返回第二個表達式(42)作爲結果。