2013-04-08 2 views
0
  <script> 
      $(document).ready(function(){ 
      var xml = "<rss version='2.0'><channel><title>MyTitle</title></channel></rss>"; 
      var data = $.parseXML(xml); 
      console.log(data); 
      $(data).find('rss').each(function(){ 
      var name = $(this).attr('version'); 
      $('<div class="items"></div>').html('<a href="'+name+'"></a>').appendTo('#page-wrap'); 
      }); 
     }); 
    </script> 
<body> 
    <div id="page-wrap"> 
     </div> 
</body> 

Что не так с вышеуказанным кодом? Я просто получаю пустую страницу. Это не выходит за рамки декларации данных var.jQuery для синтаксического разбора XML

EDIT: теперь я передаю правильный xml в parseXML(), но все же не получается. Что еще не хватает?

EDIT2: Любая идея, почему ниже код не отображает какой-либо вывод в браузере Chrome? Хотя скрипт и html-код при вводе в JSFiddle дают правильный результат.

EDIT3: Использование jquery-1.9.0 заставило его работать. Спасибо всем за вашу помощь и поддержку.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 

    <script type="text/javascript" src="jquery.js"> 

$(document).ready(function(){ 
      var xml = "<rss version='2.0'><channel><title>MyTitle</title></channel></rss>"; 
      var data = $.parseXML(xml); 
      console.log(data); 
      $(data).find('rss').each(function(){ 
      var name = $(this).attr('version'); 
      $('<div class="items"></div>').html('<a href="'+name+'">'+name+'</a>').appendTo('#page-wrap'); 
      }); 
     }); 

    </script> 
</head> 
<body> 
    <div id="page-wrap"></div> 
</body> 
</html> 
+2

любую ошибку в консоли? –

+0

Console Error: Uncaught TypeError: функция объекта (селектор, контекст) {вернуть этот экземпляр jQuery? This.init (селектор, контекст): новый jQuery (селектор, контекст);} не имеет метода 'parseXML' – user32262

+1

i dont see 'method 'в вашем xml, поэтому find ничего не возвращает. Или это какой-то фиктивный xml, который вы разместили здесь? Используя ваш код и меняя «метод» на «заголовок» (например) и используя внутренний цикл $ (this) .text(), я смог установить href для ссылки на «MyTitle». Кстати, ваше имя ссылки также пуст. –

ответ

1

Вы получили это немного неправильно.

  1. Вы ищете узел method, которого на самом деле не существует в xml.
  2. Что такое attr ('name')? К кому он принадлежит?
  3. <a> тег имеет текст, который будет отображаться в виде ссылки. Например. <a href="url">The Text</a>
  4. Наконец, поскольку вы добавляете (завернутый в a), я упростил ваш код.

Выполните следующую скрипку: JS Fiddle to your code

2

Ваш браузер не может напрямую открывать файлы из вашей файловой системы, это могло бы быть легко доступным ядром безопасности, если это возможно.

+1

+1, но обратите внимание, что в большинстве браузеров есть опция в их настройках, чтобы разрешить доступ к локальной файловой системе. Но это было бы применимо только в том случае, если вы развертываете свое веб-приложение внутри интрасети и что вы должны настраивать все компьютеры в этой сети. Это часто обычная практика в университетах и ​​компаниях внутри страны. – 2013-04-08 10:46:49

+0

Что бы то ни было, расположение файловой системы должно начинаться с 'file:'. –

3

см. jquery docs. Ввод в parseXML должен быть хорошо сформированной строкой xml, а не местоположением файла

Смежные вопросы