0

我正在尝试从文件“forum.xml”中描述的线程列表中读取。我开始意识到我的 GET 请求没有成功。这是 XML 文件(不可修改)

<?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);

任何见解总是受到赞赏

4

2 回答 2

2

改变这个

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

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

另请注意,您的调用$(".thread")可能与您调用它时的任何元素都不匹配。最好在您的文档就绪处理程序中执行此操作。

于 2013-08-21T07:12:29.893 回答
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);
        }
    });
}
于 2013-08-21T07:27:35.030 回答