【问题标题】:Jquery onclick event Load specific node(s) of XMLJquery onclick 事件加载 XML 的特定节点
【发布时间】:2015-02-24 04:42:51
【问题描述】:

我需要找到一种方法将正确的输入传递给这个 javascript 函数,让它搜索 XML 文档并返回请求的节点值。当硬编码时,XML 节点值的解析实际上可以正常工作,如下所示,我可以使用以下内容成功加载内容:

    function parse(document){

    Lyrics2 = $(document).find('elementRef[id="2"] content').text()
    Ref2 = $(document).find('elementRef[id="2"] bibleRefs').text() 
    $("#content").text(Lyrics2);
    $("#scripture").text(Ref2);
    };

$.ajax({
url: 'songlyrics.xml',
dataType: "xml",
success: parse
});

问题是我想将一个附加参数传递给在 XML 中搜索其他内容的解析函数。最终目标是在单击链接后使用 XML 文档中的修改内容更新页面上的 div,例如,类似这样的内容(其中 'reference' 是传入的搜索字符串):

    function parse(document,reference){

    Lyrics2 = $(document).find(reference).text()
    $("#content").text(Lyrics2);    
 };

...
<div id="content"></div>
<a href="javascript:;" id="play" onclick="javascript:parse(document,'elementRef[id=\&quot;2\&quot;] artist')">Title</a>

发生的情况是,在单击指定了 onClick 以运行“解析”功能的链接后,页面加载时出现的文本被替换为空 - 调试窗口中不会生成错误。

XML:

<?xml version="1.0" encoding="UTF-8"?>
        <elements>
           <elementRef id="1">
              <name>John</name>
              <artist>Smith</artist>
              <content>Active</content>
              <supportImg>test1</supportImg>
              <bibleRefs>Mark 2:13</bibleRefs>
              <other>Mark 2:11</other>
           </elementRef>
           <elementRef id="2">
              <name>Jane</name>
              <artist>Smith</artist>
              <content>Active</content>
              <supportImg>test2</supportImg>
              <bibleRefs>John 3:17 Mark 12:3</bibleRefs>
              <other>October, 2011</other>
           </elementRef>
 </elements>

如果您需要更多信息以提供帮助,请告诉我。非常感谢任何帮助。

【问题讨论】:

    标签: javascript jquery xml parsing onclick


    【解决方案1】:

    我认为你正在寻找的是

    function parse(reference) {
        if (!xml) { //the ajax request is not yet loaded so there is nothing to do
            return;
        }
        var content = $(xml).find(reference).text()
        $("#content").text(content);
    };
    
    var xml;
    $.ajax({
        url: '
        songlyrics.xml ',
        dataType: "xml",
        success: function (doc) {
            //assign the loaded xml content to a gloabl variable so that it can be used later
            xml = doc;
        }
    });
    

    然后

    <a href="javascript:;" id="play" onclick="javascript:parse('elementRef[id=\&quot;2\&quot;] artist')">Title</a>
    

    【讨论】:

    • 谢谢,我回家试试这个!真的很感激阿伦!
    猜你喜欢
    • 1970-01-01
    • 2011-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多