取消引用变量到其值以在另一个函数javascript中使用

时间:2011-06-23 14:10:35

标签: javascript jquery hashtable

function get_event_ids_from_dom()
{
    var event_ids = {};
    $.each(
    $("td.ms-cal-defaultbgcolor a"),
        function(index,value){
             var str = new String(value); 
             var id = str.substring(str.indexOf('=')+1,str.length);
             if(typeof(event_ids[id]) == "undefined")
             {
                event_ids[id] = this;
            }
            else
            {
                **event_ids.id.push(this);**

            }
        }
     )
        return event_ids;
}

在上面的javascript中,event_ids是一个哈希表。我正在尝试为此哈希表分配值。

可以使用“hashtable.key.push(value)”为哈希表添加多个值。我正在尝试使用event_ids.id.push(this);在上面的代码中。

我已将“id”声明为代码中的变量。问题是,我无法将变量“id”取消引用到它的值。

这可以在jquery / javascript中使用吗?

哈希表的使用示例:

event_ids = {};
event_ids["1"]= 'John';
event_ids.1.push('Julie');

上面的例子会将john和julie添加到哈希表中。

3 个答案:

答案 0 :(得分:2)

请改为尝试:

function get_event_ids_from_dom() {
    var event_ids = {};
    $.each(
        $("td.ms-cal-defaultbgcolor a"),
        function(index,value){
            var str = value.toString(); 
            var id = str.substring((str.indexOf('=') + 1), str.length);
            if(typeof(event_ids[id]) == "undefined") {
                event_ids[id] = [];
            }
            event_ids[id].push(this);
        });
    return event_ids;
}

请注意,虽然object["id"]object.id相同,但object[id]却不是。{/ p>

答案 1 :(得分:2)

Nicola几乎拥有它:

if(typeof(event_ids[id]) == "undefined") {
  event_ids[id] = [];
}
event_ids[id].push(this);

另请阅读我留给您的问题的评论。

答案 2 :(得分:1)

在我看来,event_ids是一个对象(javascript中没有hastables,只有索引数组对象)。 你要做的是对不是数组的东西使用push(数组方法)所以我认为你必须改变一些东西:

你可以尝试:

         if(typeof(event_ids[id]) == "undefined")
         {
            event_ids[id] = [];// the property id of object event_ids is an array
            event_ids[id].push(this);
        }
        else
        {
            event_ids[id].push(this);

        }

应该有效