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

发布于 2024-11-17 02:50:31 字数 920 浏览 0 评论 0原文

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 添加到哈希表中。

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;
}

In above javascript event_ids is a hashtable. I am trying to assign values to this hashtable.

A hashtable can be added with multiple values using "hashtable.key.push(value)". I am trying to do this using event_ids.id.push(this); in the above code.

I have declared "id" as a variable in the code. The problem is, I am not able to dereference variable "id" to its value.

Is this possible in jquery/javascript?

Example use of hashtable:

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

The above example would add john and julie to hash table.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

猥︴琐丶欲为 2024-11-24 02:50:31

请尝试以下操作:

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] 不同。

Try this instead:

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;
}

Please, note that while object["id"] is the same as object.id, object[id] is not.

故事与诗 2024-11-24 02:50:31

尼古拉几乎已经明白了:

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

另请阅读我为你的问题留下的评论。

Nicola almost had it:

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

Also please read the comment I left for your question.

柠檬色的秋千 2024-11-24 02:50:31

在我看来,event_ids 是一个对象(JavaScript 中没有哈希表,只有索引数组对象)。
你想做的是在不是数组的东西上使用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);

        }

它应该可以工作

In my opinion event_ids is an object (there are no hastables in javascript, just either indexed arrays or objects).
What you are tring to do is using push (an array method) on something that is not an array so i think you must change something:

you could try:

         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);

        }

It should work

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文