JAVASCRIPT / JQUERY存储对象

时间:2012-11-02 14:49:33

标签: jquery variables this storage

故事:我需要将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

警报始终只返回'undefined'。

解决方案:

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

虽然只是一个挑剔:

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