setechdiv@wiki

javascript

最終更新:

Bot(ページ名リンク)

- view
管理者のみ編集可

文法


オブジェクト・属性の説明


仕様


画面の値を取得する


ひっかかり






今日の日付と何日か前の日付を比較しようと、
  1. var foo = new Date();
  2. var bar = new Date(2011 ,2 -1 ,1);
  3. var hoge = (foo - bar)/86400000;
  4. alert hoge;
  5.  
とやったら、なんでか小数点以下に。で、
  1. var huga = new Date();
  2. var foo = new Date(huga.getFullYear(),huga,getMonth - 1,huga.getDate());
  3. var bar = new Date(2011 ,2 -1 ,1);
  4. var hoge = (foo - bar)/86400000;
  5. alert hoge;
  6.  
にしたら正常に!
引数なしの時生成される当日日付オブジェクトは、
引数ありの時と何か違うのか?


switch([条件]){
case [a]:
   [処理a];
   break;
case [b]:
   [処理b];
   break;
case [c]:
   [処理c];
   break;
default:
   break;
}
ポイント:
1. if文と同じはじめ方(if([条件]){[以下処理]})
2. case [場合]: で分ける
3. 一つの条件につき必ず最後にbreak;すること(この分岐を抜ける事)
4. "default"は、VBにおける"else"と同じ

OR条件にしたいとき(Case 1,2のように)
switch([条件]){
case [a]:
case [b]:
  [処理ab];
  break;
case [c]:
  [処理c];
  break;
default:
  break;
}



VBとのめんどくさい違い
 for文のto指定は
 ×「1 = 10」(になるまで)
 ○「1 > 11」(である間)
 VBの Right, Mid, Left 等に当たる substr, charAt関数は、
 ×「1文字目から2文字」
 ○「0番目から2文字」
 配列の要素番号のように、文字の先頭を0番目と数える。



  • _top - 一番上の階層
  • _parent - 一つ上の階層
全てのページをindexページ内でiframeとして呼出し表示している場合など、
_topで指定するとindexと置き換わってしまうので注意。




まず上の記事の"「/」で囲む"ルールを知らなかった。。。

∥例(半角/全角スペースをトリムする)∥
varX.replace(/^[  ]+|[  ]+$/,"")

/~/  …/で挟まれた部分が正規表現
^  …後に続く文字「から始まる」という指定
[ ]  …[ ]内の文字のいずれか、という指定(ここでは半角/全角スペース)
|  …javascriptの演算子。Or演算子。
$  …前にある文字「で終わる」という指定
+  …直前の1文字が一個以上、という数量指定

先頭に半角/全角スペースがある(複数も含む)、または
末尾に半角/全角スペースがある(複数も含む)とき、
""と置換える



ハッシュテーブルのようにKeyに対するItemを持つことができる要素






var obj = {hoge:'huga'};

この場合、
hogeがキー(プロパティというらしい)で、
'huga'がhogeにつく値、という感じ。
ハッシュテーブルと同じ感覚とみた。
でも、キーをいくらでも増やせるので、構造体配列っぽくもあるかもしれない・・・

ちなみに、
アマゾンとかであるような「上位リストを選択したら下位リストに絞込がかかる」連動リストは、
以下のような関数で実現可能。

「既にある配列targetから特定のキーを持つものを抽出して新規に配列を作る」

用意するもの:
  • 全項目入りの配列 target
  • 絞り込む項目名 key
  • 絞込のキーワード value

function find(target, key, value) {
	var ret = new Array();
	for(var index in target) {
		var item = target[index];
		if(item[key] == value) {
			ret.push(item);
		}
	}
	return ret;
}



javascriptでオブジェクトのreadonly属性を変更するときは、
readOnly
と、Oを大文字で書かないといけないらしい・・・
      • なんで?
なぞすぎる。disabledは全部小文字でいけるのによォ~ッ!

あ、input要素のdisabledをtrueにしちゃっていたら、
値をForm送信できないようだ。。
同じ内容のhidden項目を持っておくか、送信直前にdisabled解除するかしかなさそう。



子フレーム同士…documentの前にparent.フレーム名をつける
 Parent.フレーム名.document.getElementById('[ID]');



色々といっても…2こ!

コード 表示名称

リストボックスを持っている場合、
リストボックス.value でコードが、
リストボックス.options[リストボックス.selectedIndex].text で表示中の文字列が取得出来ちゃう!



   var hoge = document.getElementsByName("huga");
   for(var i=0;i<hoge.length;i++) {    
       if (hoge[i].value == '0') {
           //...
       }
   }



問題:
リンククリックで、遷移ではなく動作(行追加、アイテム削除など)したいとき、
<a href="javascript:void(0)" onclick="javascript:funcExe();">
て書くと、IE6でだけは、動かない。

原因:(先輩伝授)
javascript:void(0)は、それ自体がhref属性の動きを制御するおまじないではなく、
ただのURLダミーみたいなもん。
だから、onClickで明示的にreturn false を記述しておかないと、href が動作してしまう。
で、動作した場合、「void(0)ってなんじゃ」となって落ちる(私の推測)。

対策:
form の onsubmit でチェック関数を呼び出して、
関数内でチェックエラーとなったときreturn false してsubmitを回避する、という処理があるが、
あれと同じように、return false してhrefを回避する必要がある。っぽいのだ!



ふつうにできる。
document.iFrameName.FormName.submit();



 512Biteとか1024Biteとか、サーバ・OSによって異なるらしい





.
記事メニュー
ウィキ募集バナー