javascript - 如何将下一个上一个按钮添加到弹出窗口?

标签 javascript jquery html xml

我需要将 XML 数据加载到弹出框中的下一个和上一个按钮。单击按钮时,我的代码无法加载 XML 数据。我该如何实现代码。

这是脚本

function xmlParser(xml){
    xml = $(xml).children();
    $(xml).children().each(function () {                    
        let tag = $(this).prop("tagName");
        let image = '<img style="background-image:url(' + $(this).find("image").text() + ')"' + '" />';
        let image2 = '<div><img src="' + $(this).find("image").text() + '" width="100%" alt="' + '" />' + '</div>';
        let head = '<div>' + $(this).find("head").text() + '</div>';


        let html = `<div class="col-sm-4 random" id="random">
                    <a href="#${tag}" id="openModalBtn">
                            <div>${image}</div>
                            <h5>${head}</h5>
                        </a>
                 </div>`;
        let popup = `<div id="${tag}" class="overlay">
                <div class="popup">

                <a href="#${tag}" class="previous round">&#8249;</a>
                <a href="#${tag}" class="next round">&#8250;</a>
                    <h6>${head}</h6>
                    <a class="close" href="#">&times;</a>
                    <div>${image2}</div>
                </div>
            </div>`;


        $("#xmldata").append(html);
        $("#popup").append(popup);
    });
}

Plunker

最佳答案

首先,如果直接使用 tag 名称,div id 就会重复。因此,在 for 循环中使用索引并进行一些简单的计算来获取上一个和下一个项目,例如:

$(xml).children().each(function (idx) {     

    let tag = $(this).prop("tagName");
    let nextIdx = idx + 1;
    let prevIdx = idx - 1;

    //to make cyclic rotation
    nextIdx = nextIdx == total ? 0 : nextIdx;
    prevIdx = prevIdx == -1 ? (total -1) : prevIdx;

    //..........check plunker code

http://next.plnkr.co/edit/Sj188FthvFu6H5uv?open=lib%2Fscript.js

关于javascript - 如何将下一个上一个按钮添加到弹出窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52364435/

相关文章:

jquery - 响应式网站的背景大小

Javascript 数组浏览和比较

javascript - 使用 jQuery 动态删除单选按钮

javascript - InvalidAuthenticationToken 获取联系人照片

jquery - Kendo Grid 过滤器的 "Item Template"功能显示未定义

javascript - jQuery div 从左到右动画并在暂停后返回

php - 我应该在浏览器中使用哪些技术进行二维自上而下的足球模拟?

javascript - JQuery 动态创建可编辑文本的可拖动 Div

javascript - 当 DIV 具有子 DIV 时,如何在 DIV 上使用 Javascript onmouseout

html - 图像不粘在页面底部