Javascript Jquery onclick事件加载特定于XML的节点
我需要找到一种方法将正确的输入传递给这个javascript函数,让它搜索XML文档并返回请求的节点值。当硬编码时,XML节点值的解析实际上可以正常工作,如下所示,我可以使用以下方法成功加载内容:Javascript Jquery onclick事件加载特定于XML的节点,javascript,jquery,xml,parsing,onclick,Javascript,Jquery,Xml,Parsing,Onclick,我需要找到一种方法将正确的输入传递给这个javascript函数,让它搜索XML文档并返回请求的节点值。当硬编码时,XML节点值的解析实际上可以正常工作,如下所示,我可以使用以下方法成功加载内容: function parse(document){ Lyrics2 = $(document).find('elementRef[id="2"] content').text() Ref2 = $(document).find('elementRef[id="2"] bibl
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
});
问题是我想向parse函数传递一个额外的参数,该函数在XML中搜索somnething else。最终目标是在单击链接后使用XML文档中修改的内容更新页面上的div,例如,类似这样的内容(其中“reference”是传入的搜索字符串):
函数解析(文档,参考){
Lyrics2=$(文档).find(参考).text()
$(“#内容”)。文本(歌词2);
};
...
发生的情况是,在单击指定了onClick以运行“parse”函数的链接后,页面加载上显示的文本将被替换为零——调试窗口中不会生成任何错误
XML:
约翰
史密斯
活跃的
测试1
马可福音2:13
马可福音2:11
简
史密斯
活跃的
测试2
约翰福音3:17马可福音12:3
2011年10月
如果您需要更多信息以提供帮助,请告诉我。非常感谢您的帮助。我想您需要的是
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;
}
});
然后
谢谢,我回家后会试试这个!真的很感激,阿伦!!
<?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>