私が行っていたのは、XMLファイルを読み取り、jQueryを介してデータをHTMLファイルに取り込むことです。
多くのチュートリアルで見つけたように、私はjQueryの.get()
メソッドを使用しています。1つの問題を除いて、それは私に役立ちます!
これは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()
"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
.get()