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

正規表現を一致させることを考えていました。一致がない場合は、それを「新規」に割り当てて、jquery オブジェクトにないことを示します。

上記のステートメントの重要な部分は次のとおりです。

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

2 に答える 2

1

一致をテストするだけの場合は、次のようにします。

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

代わりは。「match」呼び出しがを返すnull場合、配列インデックス演算子はそのエラーを返します。

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

これにより、完全一致 (見つかった場合) または文字列 "new" が得られます。

于 2012-06-14T17:49:19.627 に答える