javascript - 如何使用 jquery 选择数组中的内容?

标签 javascript jquery html

我制作了一个带有标记和弹出窗口的 leafpad openstreetmap。 我现在想更改显示在另一个中的图片 <div id="plot">在那个网站上取决于点击哪个标记。为了更新 div,我想到了使用 jquery。我现在的问题是当我点击一个标记时获取数组的内容(图像 url)... 如果有任何帮助,我将不胜感激。

function add_marker() {
    var points = [
        ["P1", 51.57186, 11.8517, '<img src="img/1.JPG" alt="" width="350px">'],
        ["P2", 51.57886, 11.8117, '<img src="img/2.JPG" alt="" width="350px">'],
        ["P3", 51.57586, 11.8017, '<img src="img/3.JPG" alt="" width="350px">']
    ];

    var marker = [];
    for (var i = 0; i < points.length; i++) {
        marker[i] = new L.Marker([points[i][1], points[i][2]])
        marker[i].addTo(map);
        marker[i].bindPopup(points[i][0]);
        marker[i].on('click',  onClick);
    }

    function onClick(e) {
        $('#plot').html(points[i][3]);
    };
}

最佳答案

您需要将对 pointsi 的引用作为参数传递给您的 onClick 函数,因为它们不在全局命名空间中。

function add_marker() {
    var points = [
        ["P1", 51.57186, 11.8517, '<img src="img/1.JPG" alt="" width="350px">'],
        ["P2", 51.57886, 11.8117, '<img src="img/2.JPG" alt="" width="350px">'],
        ["P3", 51.57586, 11.8017, '<img src="img/3.JPG" alt="" width="350px">']
    ];
    var marker = [];
    var i;
    for (i = 0; i < points.length; i++) {
        marker[i] = new L.Marker([points[i][1], points[i][2]])
        marker[i].addTo(map);
        marker[i].bindPopup(points[i][0]);
        marker[i].on('click', function(e){
          onClick(e, points, i);
        });
    };
};

function onClick(e, points, i) {

    $('#plot').html(points[i][3]);
};

关于javascript - 如何使用 jquery 选择数组中的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38087249/

相关文章:

javascript - 我们如何通过 Javascript 从 CSS 文件中删除填充?

javascript - JS::First Class Functions::参数值困惑

javascript - React hooks 状态变量在重新渲染后未更新

javascript - 表头和表体列不匹配

javascript - 如何从延迟对象访问返回值?

javascript - 甜蜜警报不起作用

jquery - 自动在彼此下方显示网格元素

javascript - 如何将字符串从 Javascript 传递到 HTML 中图像标签的 src 部分?

html - 标题两侧的线条

html - 背景灰色