我试图弄清楚如何使用jquery的$ .get方法从xml文件中提取特定数据。这是我的简单xml文件:
<data>
<set1>
<image>images/thumbs/test-9-thumb.jpg</image>
<image>images/thumbs/test-2-thumb.jpg</image>
<image>images/thumbs/test-3-thumb.jpg</image>
</set1>
<set2>
<image>images/thumbs/test-3-thumb.jpg</image>
<image>images/thumbs/test-9-thumb.jpg</image>
<image>images/thumbs/test-2-thumb.jpg</image>
<image>images/thumbs/test-3-thumb.jpg</image>
<image>images/thumbs/test-2-thumb.jpg</image>
</set2>
</data>
这是我如何提取数据。在这种情况下,我将它用于jcarousel插件,但它并不重要。
function carousel_callback(carousel){
$('#live-edge-large img').bind('click', function(){
$.get('ajax/xml-content.php',
function(xml) {
mycarousel_itemAddCallback(carousel,carousel.first,carousel.last,xml);
},
"xml"
);
});
};
我需要做的是引入set1或set2标签中的图像,具体取决于最初点击的#live-edge-large img。(#live-edge中将有5-10个图像 - 因此,想法是获取#live-edge-large img的索引号,将其加1,并将其分配给变量,并使用它来定位正确的标记set1或set2。但我无法弄清楚我将如何做到这一点。这里是回调函数,它将图像添加到页面中:
function mycarousel_itemAddCallback(carousel,first,last,xml) {
$('image',xml).each(function(i) {
carousel.add(first+i, mycarousel_getItemHTML($(this).text()))
});
function mycarousel_getItemHTML(url) {
return'<img src="' + url + '" width="128" height="95" ref="' + reference +'"/>';
};
所以每个陈述都是我需要处理的。我尝试了一些东西,比如: function mycarousel_itemAddCallback(carousel,first,last,xml){
$('set[indexnumber] image',xml).each(function(i) {
carousel.add(first+i, mycarousel_getItemHTML($(this).text()))
});
其中indexnumber是表示最初单击的图像的索引号的变量。
也试过这样的事情:
var x="set"+indexnumber+" image";
$('x',xml).carousel.add(first+i, mycarousel_getItemHTML($(this).text()));
对这些想法都不感兴趣。
如何使用所点击的#live-edge-large img的索引号(或自定义变量,id等)来定位适当的数据集?
感谢。