Как получить 'guid's nodeValue в моем коде с помощью API ajax feed Google

Это мой код:

<!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 text() или html(), но не слишком,

так что я могу сделать.

Спасибо

1 ответ

Решение

Пытаться

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

или же

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

Но вы не можете сделать:

$(something) || $(somethingElse)

потому что код никогда не дойдет до $(somethingElse), поскольку $(something) вернет объект jQuery, даже если совпадений не найдено. Объект (даже пустой объект jQuery) является правдивым, поэтому выражение будет истинным независимо от значения $(somethingElse)JavaScript пропускает оценку в целом. Это называется оценкой короткого замыкания. Если вы хотите найти сначала "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) в качестве результата.

Другие вопросы по тегам