我有一个onclick函数,其中有一个javascript函数,用于从xml中获取数据。它与jquery。但它不起作用。帮助plzzz。
jsp页面
<script>
function read() {
$.ajax({
url: "dictionary.xml",
datatype: "xml",
success: function data() {
$("ul").children().remove();
$(data).find("word").each(function () {
var info = '<li>Eng = ' + $(this).find("eng").text() + '</li><li>Beng = ' + $(this).find("beng").text() + '</li>';
$("ul").append(info);
});
}
});
}
</script>
<script src="WEB-INF/js/jquery.min.js" type="text/javascript"></script>
<script src="WEB-INF/js/jquery-2.1.0.min.js" type="text/javascript"></script>
<ul></ul>
<a href="#" onclick="read();">Read</a>
xml文件
<?xml version="1.0" ?>
<corporate>
<word>
<eng>Male</eng>
<beng>Man</beng>
</word>
<word>
<eng>Female</eng>
<beng>Woman</beng>
</word>
</corporate>
答案 0 :(得分:2)
在这里,您描述了一个没有参数但具有本地名称的函数:
success: function data() {
因此,当您尝试访问data
时,实际上将您的函数传递给jQuery,这没有多大意义。
success: function data() {
$(data).find("word").each(... // here, data is a function
data
应该是一个论点:
success: function(data) {
$(data).find("word").each(... // here, data is an XML object, passed to a handler
答案 1 :(得分:0)
<script src="WEB-INF/js/jquery.min.js" type="text/javascript"></script>
<script src="WEB-INF/js/jquery-2.1.0.min.js" type="text/javascript"> </script>
删除其中任何一个,因为这将创建两个对$ object的引用。
将它们放入标题或正文标记中,但在您的脚本之前。
function read() {
$.ajax({
url: "test.xml",
datatype: "xml",
success: function (data) { //change it to function(data)
console.log(data);//check what is comming...
$("ul").children().remove();
$(data).find("word").each(function () {
var info = '<li>Eng = ' + $(data).find("eng").text() + '</li><li>Beng = ' + $(data).find("beng").text() + '</li>';
$("ul").append(info);
});
}
});
}