我正在做的是读取XML文件并通过jQuery将数据导入我的HTML文件。
正如我在许多教程中发现的那样,我使用的是jQuery的.get()
方法。除了一个问题外,它对我很有帮助!
这是XML文件:
<?xml version="1.0" encoding="utf-8" ?>
<books>
<book title="CSS Mastery" imageurl="images/css.jpg">
<description>
info goes here.
</description>
</book>
<book title="Professional ASP.NET" imageurl="images/asp.jpg">
<description>
info goes here.
</description>
</book>
<book title="Learning jQuery" imageurl="images/lj.jpg">
<description>
info goes here.
</description>
</book>
</books>
这是我的带有jQuery代码的HTML文件:
<!doctype html>
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" >
$("document").ready(function() {
$.get("one.xml", function(d) {
var title = [];
var description = [];
$(d).find("book").each(function() {
title.push($(this).attr("title"));
description.push($(this).find("description").text());
});
console.log(title);
});
});
</script>
</head>
<body>
// BODY contents...
</body>
</html>
我想要做的是我想要返回标题和描述,以便我可以在其他函数中使用这些数组。根据jQuery代码我的title
数组现在正在console
打印,但当我尝试在title
方法之外打印.get()
数组时,它会显示{{1} }}
我已经尝试在函数结束时返回数组但没有运气。我不确定我的问题是否清楚,所以我粘贴了下面给出错误的代码:
"title is undefined"
在这段代码中,它是<!doctype html>
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$("document").ready(function() {
$.get("one.xml", function(d){
var title = [];
var description = [];
$(d).find("book").each(function() {
title.push($(this).attr("title"));
description.push($(this).find("description").text());
});
});
console.log(title);
});
</script>
</head>
<body>
// BODY contents...
</body>
</html>
,并注意我正在安排"title isn't defined
方法之外的title
数组。
答案 0 :(得分:1)
只需使用如下:
title = [];
description = [];
如果你在变量名之前不使用var
它将在全局范围内,所以你也可以在其他函数中使用这两个变量。
答案 1 :(得分:0)
由于范围可变,请查看here。如果你想使用title&amp;在javascript的任何其他功能中的描述然后您可以在保存标题&amp;之后立即直接调用该javascript函数描述($.get
内部的回调函数)如下所示。
$("document").ready(function(){
$.get("one.xml", function(d){
var title = [];
var description = [];
$(d).find("book").each(function(){
title.push($(this).attr("title"));
description.push($(this).find("description").text());
});
call_to_your_function_with_title_and_desc(title, description)
});