Javascript数组变量的行为不相同
Javascript array variables not behave equally
Javascript代码将XML本地文件读取到数组变量arrTst中。它在Firefox 25.0.1中工作,我可以在调试器中看到arrTst值。我在处理这个arrTst时遇到问题。示例是显示警报。
如果我交换警报行(首先显示arrTest),则不会显示警报。
有人能解释为什么交换线路时不显示警报吗?
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<inData>
<record>
<date>2012-08-01</date>
<amount>7</amount>
</record>
<record>
<date>2012-08-02</date>
<amount>22</amount>
</record>
</inData>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html">
<script type="text/javascript" src="jquery-1.10.2.js"> </script>
<title>test read XML file</title>
</head>
<body>
<h1 >Test XML</h1>
<div id="TstMsgArea"></div>
<script type="text/javascript">
var str1="";
var arrTst=[];
var arrCon=[["2013-08-01", 1], ["2013-08-02",33]];
$(document).ready(function(){
/*******************************************************************
* read xml file from local filesystem & push to array
*******************************************************************/
$.get("test.xml",{},function(xml){
$('record',xml).each(function(i) {
_date = $(this).find("date").text();
_amount = parseInt($(this).find("amount").text());
var X0=[];
X0.push(_date);
X0.push(_amount);
arrTst.push(X0);
alert (str1);
str1+=_date +", "+_amount+"; ";
$("#TstMsgArea").append(str1);
});
});
/*******************************************************************
* check array values - if lines swapped no go !
*******************************************************************/
alert ("arrConst : " + arrCon[0][0]+", " + arrCon[0][1]+"; " + arrCon[1][0]+", " + arrCon[1][1]);
alert ("arrTest : " + arrTst[0][0]+", " + arrTst[0][1]+"; " + arrTst[1][0]+", " + arrTst[1][1]);
}); //$(document).ready
</script>
</body>
</html>
您的警报放错了地方。您需要将它们放在成功函数中,或者放在该函数内从调用的另一个函数中。
此外,您不应该在success函数之外声明str1
和arrTst
。这些是你在函数内部建立的值,在函数之外是不可用的
如果你想在代码的其他地方使用这些变量,你需要把使用它们的代码放在函数的某个地方。从$.get()
成功函数内部调用该函数,并将变量作为参数传递给它。然后你就可以确定数据已经准备好了。
var arrCon=[["2013-08-01", 1], ["2013-08-02",33]];
$(document).ready(function(){
/*******************************************************************
* read xml file from local filesystem & push to array
*******************************************************************/
$.get("test.xml",{},function(xml){
var str1="";
var arrTst=[];
$('record',xml).each(function(i) {
_date = $(this).find("date").text();
_amount = parseInt($(this).find("amount").text());
var X0=[];
X0.push(_date);
X0.push(_amount);
arrTst.push(X0);
alert (str1);
str1+=_date +", "+_amount+"; ";
$("#TstMsgArea").append(str1);
});
alert ("arrConst : " + arrCon[0][0]+", " + arrCon[0][1]+"; " + arrCon[1][0]+", " + arrCon[1][1]);
alert ("arrTest : " + arrTst[0][0]+", " + arrTst[0][1]+"; " + arrTst[1][0]+", " + arrTst[1][1]);
});
}); //$(document).ready
相关文章:
- Javascript:OnChange事件,将数组变量传递给另一个函数
- 在将csv文件中的数据分配给数组变量时增强了d3代码
- 是socket.io异步的-我需要锁定全局数组/变量吗
- 在Javascript代码中显示PHP数组变量
- 如何在不赋值数组变量的情况下读取数组数据
- 局部数组变量不是数组
- Javascript数组变量的行为不相同
- 正在尝试将Javascript数组变量分配给HTML输入值属性
- JQuery的PHP查询数组变量
- Javascript::如何将关联数组的键获取到数组变量
- 在jsp页面中获取javascript数组变量
- 输出数组变量javascript
- 如何将数组变量从Python插入到Javascript
- 将数组变量传递给函数的下一部分
- 使用 AJAX 调用将数组变量从 JS 传递到 PHP
- d3 本地存储比较数组 .filter 咖啡脚本;数组变量不起作用
- 我们可以更新一个javascript数组变量,而不使用ajax重新加载页面吗?
- 无法使用 JavaScript 将值读入全局数组变量
- 作为“名称”的Javascript数组变量不起作用
- 如何将数组变量合并为对象数组变量