2013-08-21 2 views
0

Я пытаюсь прочитать из списка потоков, как описано в файле forum.xml. Я понял, что мой запрос GET не увенчался успехом. Вот файл XML (который не модифицируется)jQuery GET не удалось

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE forum SYSTEM "forum.dtd"> 
<forum> 
<thread> 
    <title>Tea Party</title> 
    <posts>teaParty.xml</posts> 
</thread> 
<thread> 
    <title>COMP212 Exam</title> 
    <posts>crypto.xml</posts> 
</thread> 
</forum> 

и вот мой js. Я тестировал, что элемент в цели выбран.

//threadReader.js 
//Gets and display list of threads 


var Threads = (function() { 
var pub = {}; 
var target = $(".thread"); 
var xmlSource = 'forum.xml'; 

function showThreads() { 
    console.log("showThreads called"); 
    console.log(xmlSource); 
    $({ 
     type: "GET", 
     url: xmlSource, 
     cache: false, 
     success: function(data) { 
      console.log(data); 
      parseThreads(data, target); 
     } 
    }); 
} 

function parseThreads(data, target) { 
    console.log("parseThreads called"); 
    console.log(target); 
    console.log(data); 

    target.append("<ul>"); 
    $(data).find("title").each(function() { 
     $(target).append("<li>"); 
     $(target).append($(this).text()); 
     $(target).append("</li>"); 
    }); 
} 

pub.setup = function() { 
    showThreads(); 
} 

return pub; 
}()); 

$(document).ready(Threads.setup); 

любое понимание всегда ценится

ответ

2

Изменить этот

function showThreads() { 
    console.log("showThreads called"); 
    console.log(xmlSource); 
    $({ 

в

function showThreads() { 
    console.log("showThreads called"); 
    console.log(xmlSource); 
    $.ajax({ 

Также следует знать, что ваш призыв к $(".thread") может не совпадать в то время какие-либо элементы, это называется. Лучше всего сделать это в вашем документе готовы обработчик.

0

Это может помочь в будущем. Чтобы получить правильный синтаксис Jquery Ajax

http://api.jquery.com/jQuery.ajax/

В вашем случае, я думаю, это должно сгореть вызов.

function showThreads() { 
    console.log("showThreads called"); 
    console.log(xmlSource); 
    $.ajax({ 
     type: "GET", 
     url: xmlSource, 
     cache: false, 
     success: function(data) { 
      console.log(data); 
      parseThreads(data, target); 
     } 
    }); 
} 
Смежные вопросы