2010-07-26 4 views
0

voici mon code:comment obtenir le « nodeValue de guid dans mon code en utilisant le flux ajax google 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> 

et mon code n'a pas obtenu rien,

i utiliser la méthode de jquery text() ou html(), mais pas trop,

que puis-je faire.

grâce

Répondre

0

Essayez

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

ou

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

Mais, vous ne pouvez pas faire:

$(something) || $(somethingElse) 

car, le code ne sera jamais à $(somethingElse), depuis $(something) renverra un objet jQuery même si aucune correspondance n'a été trouvée. Un objet (même un objet jQuery vide) est truthy, donc l'expression va être vrai quelle que soit la valeur de $(somethingElse), JavaScript évaluer complètement saute l'. Il est appelé short-circuit evaluation. Si vous ne voulez trouver d'abord par "id", puis par "guid", essayez:

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

La raison pour laquelle cela fonctionne est parce que nous essayons d'obtenir une chaîne à chaque étape de l'expression, et non un objet. Une chaîne vide est falsy en JavaScript, donc des expressions comme:

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

renverra la seconde expression (42) à la suite.

Questions connexes