javascript函数中未捕获的TypeError

时间:2012-10-16 14:21:11

标签: javascript json html5 session-storage

Storage.prototype.setObj = function(key, obj) {
    return this.setItem(key, JSON.stringify(obj))
    ^-----Error in this line: Uncaught TypeError: Accessing selectionDirection on an input element that cannot have a selection
}
var selected = jQuery('input:checkbox.mychkbox:checked').each(function() {
        return this.id;
});
sessionStorage.setObj("savedCollSearch",selected);

我正在使用jQuery 1.7.2和Chrome 22。 这个错误在Firefox 16中显示为Uncaught Exception。在SO中搜索并且Google没有帮助,我也不知道如何解决这个问题。

我100%确定jQuery已正确加载。

1 个答案:

答案 0 :(得分:4)

这个表达......

var selected = jQuery('input:checkbox.mychkbox:checked').each(function() {
  return this.id;
});

...似乎在这里被误用了:它会返回一个jQuery包装的复选框元素集合,这可能不太容易stringify(因为循环引用)。

(作为旁注,.each将停止第一个没有id的元素的迭代,或将其设置为空字符串,但这不会这里很重要)

您可能想要使用它:

var selected = jQuery('input:checkbox.mychkbox:checked').map(function() {
  return this.id;
}).get();