+ JavaScript の質問用スレッド vol.28 +
FAQ不要
スルー
FAQ、まだテンプレには入れずに、10番くらいに普通の書き込みとして入れ、
次スレ内で適宜参照してみたらどうかな。普通の書き込みなら反対も(あまり)
ないと思う。
過去一週間の日付をjavaスクリプトで出力したいんですが、
今日の日付が6/1とするとそれの前日からの表示が6/0 6/-1となっていってしまうのを
どうすれば5/31 5/30とする事ができますか?教えて下さい。お願いします。
>>955 DateオブジェクトとsetDate(),getDate()あたりを使う。
>>955 ホレ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function calc() {
var t = new Date(document.forms.f0.elements.t0.value).getTime();
var d = 1000*60*60*24; // 1日のミリ秒数
var a = document.forms.f0.elements.a0; a.value = '';
for(i = 0; i < 7; ++i) { a.value += new Date(t -= d).toString() + '\n'; }
}
</script>
</head><body>
<form name="f0" action="#" onsubmit="return false"><p>
<input type="text" name="t0" value="2004/6/1">
<input type="button" value="calc" onclick="calc()"><br>
<textarea name="a0" rows="10" cols="40"></textarea>
</p></form></body></html>
958 :
955:04/06/21 17:16 ID:???
みなさんありがとうございました。
959 :
キューブ:04/06/21 17:25 ID:mlp8itVV
新しくウィンドウを開きさっきまで開いていたウィンドウにあるフォームの内容を新しく開いたウィンドウのフォームに書き込みたいのですが、
function aiueo(){
win1=window.open('aiueo.html','swindow','');
win1.f1.aiu.value=document.f1.eo.value;
}
と書いたら、エラーがでてしまい直せなくなってしまいました。
エラーの内容は「'win1.f1.aiu'はNullまたはオブジェクトではありません。」です。
OSはWindows XPブラウザはIE6です。
誰か教えてください。
>>959 (1)window.open()した直後はまだHTMLが読まれてないからすぐ
中身を触ろうとしても無理ぽ。onloadとかsetTimeout()とか
使って少しタイミングを遅らしてアクセスすること。
(2)途中を省略しまくるからわけが分からなくなる。面倒でも
win1.document.forms.f1.elements.aiu.value = document.forms.f1.elements.eo.value;
と書くことを勧めるけどね。
以上の説明で分からない場合それ以上説明はしないから勉強してね。
>>960様
本当にありがとうございます。
sage忘れてた
変数を三つくっつけたいんですが
moji1 = 10;
moji2 = 20;
moji3 = 30;
moji = "moji1" + "moji2" + "moji3";
とやってみたのですが変数に代入されずにmoji1moji2moji3と帰ってきます。
102030と返したいのですがどうすればいいでしょうか?
教えて下さい。
>>962 moji = String(moji1) + String(moji2) + String(moji3);
しかし長いな。この方が楽かも。
moji = '' + moji1 + moji2 + moji3;
文字列に連結すれば全部文字列連結演算の「+」として扱われる。
moji = moji1+""+moji2+""+moji3
なんてどうだい?
966 :
962:04/06/21 22:40 ID:???
無事できました。ありがとうございました。
みんなもconcat使おうよぉ〜
>>967 Welcome to this crazy time
このイカれた時代へようこそ
バッボイバッボイバッボイ
concatはStringオブジェクトじゃないと使えんだろ
>>970 いや、文字列、数値、論理値の値に対してメソッド呼び出しを
すると、対応するオブジェクトに変換の上メソッドが呼ばれる
から大丈夫だよ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<pre><script type="text/javascript">
document.writeln('abc'.concat('def'));
document.writeln(3.1416.toPrecision(10));
document.writeln(true.toString());
</script></pre>
</p></form></body></html>
しかし文字列連結の場合、連結演算子「+」を使う方が
ずっと読みやすくスマートだと思うけどね。
>>971 数字も文字列連結したいときもあるし
一元的にconcat呼ぶようにしてもいいかも?
>>969 きみは タフボーイ
あれか。
toStrings(16) で16進法に変換するとか、その類の変な使い方が出来るって事?
>>971 何か勘違いしてない?
<html>
<body>
<script type="text/javascript">
var num = 123;
var str = "abc";
document.write(num.concat(str));
</script>
</body></html>
これじゃ動かないでしょ?ってこと
>>962 >>967 >>970 と読んで味噌
内部の型の勉強汁!
>>974 確かに勘違いしていた。文字列値と文字列オブジェクトの違い
の話かと思ったが実は数値オブジェクトにはconcatがない
という話だったのね。となると文字列連結したい場合は
「num.toString().concat(str)」とかすることになるわけで。
やっぱし面倒だし普通に「+」で連結してくのが楽だよね。
どうしてもconcatなら
Number.prototype.concat = function(str){
return this.toString() + str;
};
979 :
977:04/06/22 16:39 ID:???
return this.toString().concat(str);
だったか。
ここも梅揚げ
>>977 Number.prototype.concat=String.prototype.concatで充分。
実のところconcatの引数のオブジェクトの型は何でもいいから
>>962に対するconcatを使う答えとしては
String(moji1).concat(moji2, moji3);
でよいのだ
function checkoff(){
for (i=1; i<7; i++){
flag12 = document.form1.elements["check"+i].checked;
if(flag12){
document.form1.elements["check"+i].checked = false;}
}
// --></script>
</head>
<body onload="checkoff();">
ページをスクリプトでbackしたときのチェックボックスのチェックをはずしたいのですが
onloadでチェックをはずそうとするとエラーが出て困ってます。
何か良い方法はないでしょうか?
>>983 window.onload = function(){
var tmp = document.getElementsByTagName("input");
for(var i=0 ; i<tmp.length ; i++){
if(tmp.checked) tmp.checked = false;
}
}
とか。ほとんど同じだなあ。
エラーはなんていっているの?
986 :
983:04/06/22 23:14 ID:???
>>984 オブジェクトを指定しろと言われました、オブジェクトではありませんエラーは出てないんだが、なんでだろう?
987 :
983:04/06/22 23:18 ID:???
あ、ごめん気が付いた}が足りてない・・・。orz
(*゚ー゚)うめ
(゚ー゚*)まつ
( ´,_ゝ`)ハイハイ
\(∇⌒\)ソーレソレ(/⌒∇)/
お祭りじゃねぇ!
( ´゚д゚`)えーーー
お祭り再開
\(∇⌒\)ソーレソレ(/⌒∇)/
\(∇⌒\)ハイハイ(/⌒∇)/
砂肝たべたい。
( ´゚д゚`)えーーー
3ウラ 巨1 - 8中
4表 巨1 - 8中
1000ゲット
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。