2016-06-23 5 views
0

У меня есть функция onclick, в которой есть функция javascript, которая запускается для извлечения данных из xml. это с jquery. но он не работает. помощь plzzz.Я не могу прочитать данные из xml

страница JSP

<script> 

      function read() { 
       $.ajax({ 
        url: "dictionary.xml", 
        datatype: "xml", 
        success: function data() { 
         $("ul").children().remove(); 
         $(data).find("word").each(function() { 
          var info = '<li>Eng = ' + $(this).find("eng").text() + '</li><li>Beng = ' + $(this).find("beng").text() + '</li>'; 
          $("ul").append(info); 
         }); 
        } 

       }); 
      } 

     </script> 
     <script src="WEB-INF/js/jquery.min.js" type="text/javascript"></script> 
     <script src="WEB-INF/js/jquery-2.1.0.min.js" type="text/javascript"></script> 
     <ul></ul> 


     <a href="#" onclick="read();">Read</a> 

XML файл

<?xml version="1.0" ?> 
<corporate> 
<word> 
    <eng>Male</eng> 
    <beng>Man</beng> 
</word> 
<word> 
    <eng>Female</eng> 
    <beng>Woman</beng> 
</word> 
</corporate> 
+0

попробуйте заменить '' datatype' в dataType' и изменить 'успеха: данные функции() {' 'к успеху: функция (данные) {' – xAqweRx

+0

измененную дружище .. но никакого эффекта .. –

ответ

0
<script src="WEB-INF/js/jquery.min.js" type="text/javascript"></script> 
<script src="WEB-INF/js/jquery-2.1.0.min.js" type="text/javascript"> </script> 

удалить любой из них, так как это создаст две ссылки на $ объекта.

положить их в заголовок или тег тела, но перед вашим скриптом.

working version

function read() { 
        $.ajax({ 
         url: "test.xml", 
         datatype: "xml", 
         success: function (data) { //change it to function(data) 
          console.log(data);//check what is comming... 
          $("ul").children().remove(); 
          $(data).find("word").each(function() { 
           var info = '<li>Eng = ' + $(data).find("eng").text() + '</li><li>Beng = ' + $(data).find("beng").text() + '</li>'; 
           $("ul").append(info); 
          }); 
         } 

        }); 
       } 
+0

thanxx ,, но badluck .. все еще не получает цель –

+0

, с какими проблемами вы сталкиваетесь? –

+0

после нажатия кнопки i данные не отображаются. и alert() также не работает, когда я пытался предупредить var info. –

2

Здесь вы описываете функцию без аргументов, но с локальным именем:

success: function data() { 

Итак, когда вы пытаетесь получить доступ s data, вы фактически передаете свою функцию jQuery, что не имеет особого смысла.

success: function data() { 
    $(data).find("word").each(... // here, data is a function 

data должен быть аргументом:

success: function(data) { 
    $(data).find("word").each(... // here, data is an XML object, passed to a handler 
+0

да ... правильный .. i hv изменился .. но все еще не получаю данные. –

+0

попытайтесь предупредить данные в функции успеха и опубликуйте результат, который вы получаете –

+0

Кроме того, привяжите функцию ведения журнала к атрибуту ajax 'error' и посмотрите, есть ли какие-либо ошибки из запроса ajax. –