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添加到哈希表中。
答案 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);
}
应该有效