0

我正在 jQuery 中构建一个从 XML 填充数组的函数。XML 来自另一个应用程序,所以我无法更改它。

该函数旨在在创建数组后预加载图像。除了我无法区分不同父标签下具有相同名称的子标签外,一切都运行良好。

好吧,这里是 jQuery 代码:

 (function() {
{
setTimeout(function(){

var splashArray = new Array();
// Load the Splash XML file and assign each image within to an array
$.get('images.xml', function(xml) {

问题在这里:

 $('album', xml).each(function (i) {
        var path = $(this).attr("lgpath");
        $('img', xml).each(function (i) {
         splashArray.push("/fotografie-matrimonio/" + path + $(this).attr("src"));

看下面的问题!

    });
    });
    work_with_splash();
});
function work_with_splash () {
    Object.size = function(obj) {
    var size = 0, key;
    for (key in obj) {
    if (obj.hasOwnProperty(key)) size++;
      }
     return size;
    };
    // Get the size of an object
    var size = Object.size(splashArray);
    var i = 0;
    for(i=0; i<size; i++) new Image().src = splashArray[i];
                /*alert(result[X]);*/   
} //closes the spalsh Call

}, 1000);
};

这里是 XML 结构:

<album id="1" lgpath="thePath 1/" ...>
    <img src="name of photo 1" ....></img>
    <img src="name of photo 2"....></img>
    <img src="name of photo 3"....></img>
</album>
<album id="2" lgpath="thePath 2/" ...>
    <img src="name of photo 1" ....></img>
    <img src="name of photo 2"....></img>
    <img src="name of photo 3"....></img>
</album>

该脚本有效,但它所做的是它为每个专辑路径加载所有 img src(也是其他专辑路径的那些。

我要做的是:按父标签分组处理 img 标签。不知道我说清楚没!

谢谢 !!!

4

1 回答 1

0

我已经解决了!

简单的...

只需将代码更改为:

 $('album', xml).each(function (i) {
    var path = $(this).attr("lgpath");
    $('img', xml).each(function (i) {
     splashArray.push("/fotografie-matrimonio/" + path + $(this).attr("src"));

到:

 $('img', xml).each(function (i) {
        var path = $(this).parent().attr("lgpath");
        splashArray.push("/fotografie-matrimonio/" + path + $(this).attr("src"));
    });

使用 .parent() 方法。

希望它会帮助别人!

干杯:)

于 2012-10-12T21:59:27.973 回答