1

尝试为表单提交计划一个字符串生成器:

try{
  top.document.getElementById("attributes").contentWindow.location = "attributeToolbar.aspx?el_id=" + (t_selected.attr("id").match(intRegex)[0] || "new") + "&opts="+ form_to_server();
}catch(err){
  alert(err);
  //prints:   TypeError: Unable to get value of the property '0': object is null or undefined.
}

我正在考虑将正则表达式与匹配项分开,如果没有匹配项,则将其分配给“new”以显示它不在 jquery 对象中。

上述声明中的关键领域是:

(t_selected.attr("id").match(intRegex)[0] || "new")
4

2 回答 2

1

如果您只想测试匹配,请执行以下操作:

... intRegex.test(t_selected.attr("id")) ...

反而。如果“匹配”调用返回null,数组索引运算符会给你那个错误。

于 2012-06-14T16:21:32.387 回答
1
(t_selected.attr("id").match(intRegex) || ["new"])[0]

这将为您提供完整的匹配项(如果找到)或字符串“new”。

于 2012-06-14T17:49:19.627 回答