Jquery onclick 事件加载 XML 的特定节点
Jquery onclick event Load specific node(s) of XML
我需要找到一种方法将正确的输入传递给这个 javascript 函数,让它搜索 XML 文档和 return 请求的节点值。 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 中搜索其他内容的解析函数。最终目标是在单击 link 后,使用 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=\"2\"] artist')">Title</a>
发生的情况是,在单击已将 onClick 指定给 运行 'parse' 函数的 link 后,页面加载时出现的文本被替换为空——没有错误在调试中生成 window.
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>
如果您需要更多信息以便提供帮助,请告诉我。非常感谢任何帮助。
我想你要找的是
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=\"2\"] artist')">Title</a>
我需要找到一种方法将正确的输入传递给这个 javascript 函数,让它搜索 XML 文档和 return 请求的节点值。 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 中搜索其他内容的解析函数。最终目标是在单击 link 后,使用 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=\"2\"] artist')">Title</a>
发生的情况是,在单击已将 onClick 指定给 运行 'parse' 函数的 link 后,页面加载时出现的文本被替换为空——没有错误在调试中生成 window.
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>
如果您需要更多信息以便提供帮助,请告诉我。非常感谢任何帮助。
我想你要找的是
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=\"2\"] artist')">Title</a>