Javascript-从XML获取数据以供以后使用。。。放入数组还是对象?
我正在使用jQuery从XML文件中提取一组数据。我需要使用这些数据来填写图像路径、名称等 收集所有这些数据以供使用的最佳方式是什么?例如,我得到的一切都是这样的:Javascript-从XML获取数据以供以后使用。。。放入数组还是对象?,javascript,jquery,Javascript,Jquery,我正在使用jQuery从XML文件中提取一组数据。我需要使用这些数据来填写图像路径、名称等 收集所有这些数据以供使用的最佳方式是什么?例如,我得到的一切都是这样的: $(document).ready(function() { $.ajax({ type: "GET", url: "stuff.xml", dataType: "xml",
$(document).ready(function() {
$.ajax({
type: "GET",
url: "stuff.xml",
dataType: "xml",
success: function(xml) {
$(xml).find('speaker').each(function(){
var img_path = $(this).find('speaker_image').text();
var name_text = $(this).find('speaker_name').text();
// should I build an array or object here?
});
}
});
});
我应该在success方法中将所有内容都粘贴到一个数组中吗?也许在一个物体里?我将要做的是获取收集到的数据,并使用它来构建名称和图像的列表。这其中有相当多的元素,看起来像(图像url中使用了img\u路径
,标签中使用了name\u文本
:
<ul>
<li><img src="images/bobsmith.jpg" /><br /><lable>Bob S. Smith</label></li>
<li><img src="images/crystalforehead.jpg" /><br /><lable>Crystal X. Forehead</label></li>
...
</ul>
鲍勃·史密斯
水晶前额
...
处理收集的数据的最佳方法是什么,这样我就可以使用它浏览并构建所需的html?如果不需要重复使用XML文件中的数据,为什么不在读取数据时构建DOM元素呢 例如,在你的成功方法中:
$(xml).find('speaker').each(function(){
var img_path = $(this).find('speaker_image').text();
var name_text = $(this).find('speaker_name').text();
var html = '<li><img src="' + img_path + '" /><br /><label>' + name_text + '</label></li>';
$("#myList").append(html);
});
$(xml).find('speaker').each(function(){
var img_path=$(this).find('speaker_image').text();
var name_text=$(this).find('speaker_name').text();
var html='
'+name_text+' ';
$(“#myList”).append(html);
});
如果需要重复使用,请将其放入数组对象中:
function linkItem(linkImage, linkText)
{
this.linkImage = linkImage;
this.linkText = linkText;
};
function mylist()
this.speakerList = new Array();
$(xml).find('speaker').each(function()
{
this.speakerList [$(this).index()] = new linkItem($(this).find('speaker_image').text(), $(this).find('speaker_name').text());
};
};
如果只使用一次,只需构建它:
var myhtml = ""
$(xml).find('speaker').each(function(){
myhtml = myhtml + '<li><img src="' + $(this).find('speaker_image').text() + '" /><br /><label>' + $(this).find('speaker_name').text() + '</label></li>';
});
或
这将使用
push
将检索到的结果放入一个数组中:
success: function(xml) {
var results = [];
$(xml).find('speaker').each(function(){
results.push($(this));
});
仅供参考,在Javascript中,数组是对象,您可以拥有一个对象数组。
$(selector).innerHtml(myhtml);
success: function(xml) {
var results = [];
$(xml).find('speaker').each(function(){
results.push($(this));
});