Arrays jQuery/AJAX多维数组
我试图解析一些在线存储的XML,然后通过PHP保存每个父节点及其子节点 作为测试,我创建了一些基本的XML,因为在线XML非常长。 我有一点XML,我正试图用它来实现基本功能Arrays jQuery/AJAX多维数组,arrays,jquery,Arrays,Jquery,我试图解析一些在线存储的XML,然后通过PHP保存每个父节点及其子节点 作为测试,我创建了一些基本的XML,因为在线XML非常长。 我有一点XML,我正试图用它来实现基本功能 <result> <name>Person1</name> <date>2002-05-16</date> </result> <result> <name>Person2</nam
<result>
<name>Person1</name>
<date>2002-05-16</date>
</result>
<result>
<name>Person2</name>
<date>2012-11-06</date>
</result>
我希望在以下html中分别显示每个结果:
<body>
<p>XML Split</p>
<div id="contents"></div>
<div id="scroll"><input type="button" id="next" Value=" next in array "/>
<input type="button" id="previous" Value=" previous in array "/></div>
<div id="save"><input type="button" id="one" Value=" Save xml "/>
<input type="button" id="all" Value=" Save all xml "/></div>
<p>XML Split ended</p>
</body>
为此,我使用以下jQuery:
$(document).ready(function() {
$.ajax({
type: "GET",
url: "sampleContent.xml",
dataType: "xml",
data: ({'name': name, 'date': date}),
success: function(xml) {
parseXml(xml);
append();
}
});
});
var tmpName;
var tmpDate;
var results = [];
function parseXml(xml) {
$(xml).find('result').each(function() {
tmpName = $(this).find('name').text();
tmpDate = $(this).find('date').text();
output = $(this).val();
if (output != ''){
obj = {};
obj.name = name;
obj.date = date;
obj.output = output;
results.push(obj);
}
});
}
function append() {
$(results).each(function() {
$('#contents').append('<div id="record"><div class="name">' +
tmpName + '</div><div class="date">' +
tmpDate + '</div></div>');
});
}
当我尝试创建一个数组时,我正在努力获取要显示的XML数据。我还需要输入数组中使用的一些变量,例如date from year-month day->day month year
我不确定这是如何或为什么出错的,因此,如果您对创建所需阵列有任何建议,我将不胜感激。我一直试图用它作为例子,但还是出了问题
欢迎提出任何建议
谢谢
Dan在append函数中,使用数组中的值,而不是使用tmpName和tmpDate
有几件事
结果似乎是在根级别,只查找查找
后代
全局变量将在循环中更改,并且相等
循环后的最后一个值
如果输出!={…永远不会为真,因为结果元素没有值
-
在append函数中,使用数组中的值,而不是使用tmpName和tmpdate谢谢你的快速回答,我已经按照你的建议进行了修改,但仍然没有得到任何输出。谢谢你的回答,也许现在有点困惑,这应该是我所做的全部重写吗?我已经尝试过在,并尝试用.done.的新函数替换我的parseXml函数和append函数。我仍然没有得到任何输出。至于'if output!={…永远不会是真的,因为结果元素没有值',我的尝试是错的。将名称和日期对象推入数组以获得结果?因此创建一个名为results的obj数组?@PartTimeNinja-val获取值,如中所示,并且没有值,因此val将始终返回一个空字符串。创建数组没有错,但您是我迭代创建数组,然后迭代使用数组,当您可以立即使用值时,实际上并不需要数组。您已将数据类型设置为xml,因此不需要$.parseXML,jQuery为您执行此操作,并且完成与实际成功相同,因此这应该可以替换您拥有的代码。请尝试控制台记录xml在第一行里面完成了吗?
$(results).each(function(i) {
$('#contents').append('<div id="record"><div class="name">' +
results[i].name + '</div><div class="date">' +
results[i].date + '</div></div>');
});
$(document).ready(function () {
$.ajax({
type: "GET",
url: "sampleContent.xml",
dataType: "xml",
data: {
name : name,
date : date
}
}).done(function(xml) {
$('<div />').append(xml).find('result').each(function () {
var record = $('<div />', {
id : 'record'
}),
name = $('<div />', {
'class' : 'name',
html : $(this).find('name').text()
}),
date = $('<div />', {
'class' : 'date',
html : $(this).find('date').text()
});
$('#contents').append( record.append(name, date) );
});
});
});