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

Javascript 如何使用jquery选择数组中的内容?,javascript,jquery,html,Javascript,Jquery,Html,我用记号笔和弹出窗口制作了一张Leappad openstreetmap。 现在,我想根据单击的标记更改该网站上另一个中显示的图片。为了更新div,我考虑使用jquery。我现在的问题是,当我点击一个标记时,获取数组的内容(图像url)。。。 我将感谢任何帮助 function add_marker() { var points = [ ["P1", 51.57186, 11.8517, '<img src="img/1.JPG" alt="" width="350

我用记号笔和弹出窗口制作了一张Leappad openstreetmap。 现在,我想根据单击的标记更改该网站上另一个
中显示的图片。为了更新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]);
    };
}
函数add_marker(){
变量点=[
[“P1”,51.57186,11.8517,',
[“P2”,51.57886,11.8117,',
[“P3”,51.57586,11.8017,”]
];
var标记=[];
对于(变量i=0;i
您需要将对
i
的引用作为参数传递给
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]);
};
函数add_marker(){
变量点=[
[“P1”,51.57186,11.8517,',
[“P2”,51.57886,11.8117,',
[“P3”,51.57586,11.8017,”]
];
var标记=[];
var i;
对于(i=0;i
函数添加标记(){
变量点=[
[“P1”,51.57186,11.8517,',
[“P2”,51.57886,11.8117,',
[“P3”,51.57586,11.8017,”]
];
var标记=[];
var i;
对于(i=0;i

解释为什么使用闭包是错误的!
i
变量将包含所有onClick()函数的“points.length-1”值。
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]);
        // using a closure to avoid incorrect reference
        (function (i) {
            marker[i].on('click', function(e){
                onClick(e, points, i);
            });
        })(i)
    };
};

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