私は現在、私が持っているXMLファイルの値を使用してドロップダウンリストを作成するjavascriptクロージャを作成しようとしています。ほとんどのコードで機能し、使用するたびにXMLファイルをロードしていました。ただし、コードをより効率的にし、XMLファイルを1回だけロードしたいと思います。以下のコードを使用してこれを実行しようとしましたが、エラーが発生し続けます。
これは私がクロージャーのために持っているコードです...
var closure = function() {
var xmlDoc;
return{
setXML: function()
{
xmlDoc = this.loadXMLDoc("feed.xml");
},
loadXMLDoc: function(dname)
{
if (window.XMLHttpRequest)
{
xhttp=new XMLHttpRequest();
}
else
{
xhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET",dname, false);
xhttp.send();
return xhttp.responseXML;
},
createField: function()
{
x = xmlDoc.getElementsByTagName("name");
//code to create the drop down box
},
findValue: function()
{
y = xmlDoc.getElementsByTagName("value");
//code to find value
}
};
}();
これは関数を呼び出すコードです...
$(document).ready(function () {
closure.setXML();
});
私が得ているエラーは、createField関数にある「未定義のメソッド「getElementsByTagName」を呼び出せません」です。これは、xmlDocを使用しようとした私の最初のインスタンスです。
この問題に関するヘルプやチュートリアルは大歓迎です。