【问题标题】:Binding two array elements into one将两个数组元素合二为一
【发布时间】:2013-07-05 20:54:06
【问题描述】:

我有一个问题让我头疼,想不出该怎么做。我有以下提要。

[{
    "title": "thumb_36cr8350.jpg",
    "url": "http://example.com/s3images/thumb_36cr8350.jpg",
}, {
    "title": "large_36cr8352.jpg",
    "url": "http://example.com/s3images/large_36cr8350.jpg",

}, {
    "title": "thumb_36cr8358.jpg",
    "url": "http://example.com/s3images/thumb_36cr8358.jpg",
}, {
    "title": "large_36cr8360_a.jpg",
    "url": "http://example.com/s3images/large_36cr8358.jpg",

}]

我正在循环播放

var thumb = "<ul id='thumbs'>";
$.each(response, function (i, item) {
    var params = baseName(item.title).split("_");
    if (params[0] === 'thumb') {
        thumb += '<li><a class="group1" href="{this need to be the large thumb}"><img src="' + item.url + '" width="75" height="75"/></a></li>';
    }
});
thumb += "</ul>";
$('.conatiner').html('<div id="wrap">' + thumb + '</div>');

function baseName(str) {
    var base = new String(str).substring(str.lastIndexOf('/') + 1);
    if (base.lastIndexOf(".") != -1)
        base = base.substring(0, base.lastIndexOf("."));
    return base;
}

我需要以某种方式将大图片推入列表的 href 以获得灯箱效果。

我一辈子都想不出该怎么做。

请帮忙

【问题讨论】:

    标签: javascript loops each


    【解决方案1】:

    告诉我这是不是你要找的东西:

    var thumb = "<ul id='thumbs'>";
    $.each(response, function (i, item) {
        var params = baseName(item.title).split("_");
        if (params[0] === 'thumb') {
            thumb += '<li><a class="group1" href="#{url}"><img src="' + item.url + '" width="75" height="75"/></a></li>';
        } else {
            thumb = thumb.replace("#{url}", item.url);
        }
    });
    thumb += "</ul>";
    $('.conatiner').html('<div id="wrap">' + thumb + '</div>');
    
    function baseName(str) {
        var base = new String(str).substring(str.lastIndexOf('/') + 1);
        if (base.lastIndexOf(".") != -1)
            base = base.substring(0, base.lastIndexOf("."));
        return base;
    }
    

    【讨论】:

    • 这取决于响应中传递项目的顺序......只是一个注释。
    • 是的,我这样做时考虑到了 OP 提供的数组(为了简单起见)
    • 我从 console.log(thumb) 得到的输出;是 12
      • 嗯,这很奇怪,你提供的回复对我有用,看:jsfiddle.net/VZGts/1
      • 我猜这可能是响应,试试console.log(response),看看你会得到什么:)
      猜你喜欢
      • 2014-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-16
      • 1970-01-01
      • 2019-02-06
      • 2021-12-13
      相关资源
      最近更新 更多