先ほどの記事で行った展開方式でデバッグしているため、
今日は割りとサクサク実装が進みます。
さっき述べたとおり、画面周りのJavaScriptいじってるんですが、
好きじゃないんですよね、クライアント側のスクリプト言語って。
型付けの緩い言語ってもう一つ覚えづらくて…
それにブラウザによって仕様が違いすぎるし。
(ちなみに、今回のシステムはIE6限定です)
でも、最近はAjaxなんて面白そうなギミックも出てきているし、
これを機会に勉強しないとなと思っている次第です。
で、修正している部分というのが、
複数のcheckboxのonClickに応じて、
連動するtextareaの内容を編集する(文頭に特定の文言を付加する)のですが、
<input name="hoge" type="checkbox" onClick="javascript:func(this)">
とすると、JavaScriptのfuncでのthisって、
formオブジェクトの下にぶら下がるelements配列の一つになるんですよね?
で、連動するtextarea引っ張ってこないといけないので、
その親のformオブジェクトも取りたいなと思って、
elements[0].parentNode とか参照したんですが、
どうも違うらしい…
調べたら、this.form ってやるんですね。
フーン、って感じでした。(笑)
DOMの構造って、慣れて知識蓄えるしかないんでしょうかね!?
ポケットリファレンスが手放せませんよ??
でも、JavaScriptにもよい部分を見つけました。
正規表現周りが割と気軽に実装できる。
といいながら、うまくいかずにハマったんですが…
var regExp = new RegExp(/hoge/);
とかっていう記述の仕方、すごく違和感感じるんですが、
もう私って時代遅れなのかしらん?
この正規表現文字列をArrayオブジェクトで持っていて、
var regExp = new RegExp(array[0]);
とか、
var regExp = new RegExp("/"+array[0]+"/");
とかやっても、うまくいかんわけですよ。
compile()メソッドを使うんですねぇ。
var regExp = new RegExp();
regExp.compile(array[0]);
なんて。
ハァ、勉強になったなっと。
実際のところ、このJavaScriptはJSPの一部で、
JavaScriptのform名など、
<%= formName %>とかで書き換えたりしているのですが、
名前空間って言うんでしょうか、コンテキストって言うんでしょうか、
コードが解釈、処理される空間を把握するのに苦労するんですよね…
J2SE5.xのenumなんかと戸惑い方がよく似ています。
ヤベー、頑張ってベンキョウシナイトナっ!
最近のコメント