1

故事:我需要将 JQuery('') 存储到一个数组中以供进一步工作。

我的半功能解决方案(无法正常工作):

    var myArray = new Array();
    var $selected_place;

    function addPlace(){
        var new_place = jQuery('<div/>', {
            class: 'place'
        });

        new_place.click(function(){
             doSomething($(this));
        });

        myArray[myArray.length] = new_place;
    }

问题:

function doSomething(link) {
    var number;
    for (var i = 0; i < myArray.length; i++){
        if (myArray[i] == link){
            number= i;
            break;
        } //end of if
    } //end of for
    alert(number);
} //end of function

警报始终只返回“未定义”。

解决方案:

将 $(this) 替换为全局变量解决了我的问题,现在它可以正常工作了。$selected_place = new_place; 并在 doSomething 方法/函数中 if 语句 myArray[i] == $selected_place

4

2 回答 2

0

这可能是因为 myArray 不包含 $selected_place 的值。您可能以错误的顺序调用您的函数。

虽然只是一个挑剔:

你可以myArray.push(new_place)用来完成myArray[myArray.length] = new_place;

于 2012-11-02T14:52:23.760 回答
0

selected_place 和/或 myArray 为空。将其作为参数传递给函数 doSomething()

于 2012-11-02T14:50:59.523 回答