+ JavaScript の質問用スレッド vol.28 +

このエントリーをはてなブックマークに追加
952Name_Not_Found:04/06/21 14:44 ID:???
FAQ不要
953Name_Not_Found:04/06/21 15:26 ID:???
スルー
954Name_Not_Found:04/06/21 15:30 ID:???
FAQ、まだテンプレには入れずに、10番くらいに普通の書き込みとして入れ、
次スレ内で適宜参照してみたらどうかな。普通の書き込みなら反対も(あまり)
ないと思う。
955Name_Not_Found:04/06/21 16:23 ID:???
過去一週間の日付をjavaスクリプトで出力したいんですが、
今日の日付が6/1とするとそれの前日からの表示が6/0 6/-1となっていってしまうのを
どうすれば5/31 5/30とする事ができますか?教えて下さい。お願いします。
956Name_Not_Found:04/06/21 16:30 ID:???
>>955
DateオブジェクトとsetDate(),getDate()あたりを使う。
957Name_Not_Found:04/06/21 17:14 ID:???
>>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>
958955: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です。
誰か教えてください。
960Name_Not_Found:04/06/21 17:30 ID:???
>>959
(1)window.open()した直後はまだHTMLが読まれてないからすぐ
中身を触ろうとしても無理ぽ。onloadとかsetTimeout()とか
使って少しタイミングを遅らしてアクセスすること。
(2)途中を省略しまくるからわけが分からなくなる。面倒でも
win1.document.forms.f1.elements.aiu.value = document.forms.f1.elements.eo.value;
と書くことを勧めるけどね。

以上の説明で分からない場合それ以上説明はしないから勉強してね。
961キューブ:04/06/21 17:38 ID:???
>>960
本当にありがとうございます。
sage忘れてた
962Name_Not_Found:04/06/21 18:29 ID:???
変数を三つくっつけたいんですが
moji1 = 10;
moji2 = 20;
moji3 = 30;

moji = "moji1" + "moji2" + "moji3";
とやってみたのですが変数に代入されずにmoji1moji2moji3と帰ってきます。
102030と返したいのですがどうすればいいでしょうか?
教えて下さい。
963Name_Not_Found:04/06/21 18:41 ID:???
>>962
moji = String(moji1) + String(moji2) + String(moji3);
しかし長いな。この方が楽かも。
moji = '' + moji1 + moji2 + moji3;
文字列に連結すれば全部文字列連結演算の「+」として扱われる。
964Name_Not_Found:04/06/21 21:49 ID:???
moji = moji1+""+moji2+""+moji3
なんてどうだい?
965Name_Not_Found:04/06/21 22:31 ID:???
>>964
お前は>>963が読めないのかw
966962:04/06/21 22:40 ID:???
無事できました。ありがとうございました。
967concat信者:04/06/22 03:42 ID:???
みんなもconcat使おうよぉ〜
968Name_Not_Found:04/06/22 09:23 ID:???
>>967
Welcome to this crazy time
このイカれた時代へようこそ
969Name_Not_Found:04/06/22 10:59 ID:???
バッボイバッボイバッボイ
970Name_Not_Found:04/06/22 12:07 ID:???

concatはStringオブジェクトじゃないと使えんだろ
971Name_Not_Found:04/06/22 13:33 ID:???
>>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>
しかし文字列連結の場合、連結演算子「+」を使う方が
ずっと読みやすくスマートだと思うけどね。
972Name_Not_Found:04/06/22 15:55 ID:???
>>971
数字も文字列連結したいときもあるし
一元的にconcat呼ぶようにしてもいいかも?

>>969
きみは タフボーイ
973Name_Not_Found:04/06/22 15:55 ID:???
あれか。
toStrings(16) で16進法に変換するとか、その類の変な使い方が出来るって事?
974Name_Not_Found:04/06/22 16:02 ID:???
>>971
何か勘違いしてない?
<html>
<body>
<script type="text/javascript">
var num = 123;
var str = "abc";
document.write(num.concat(str));
</script>
</body></html>

これじゃ動かないでしょ?ってこと
>>962 >>967 >>970
と読んで味噌
975Name_Not_Found:04/06/22 16:26 ID:???
内部の型の勉強汁!
976Name_Not_Found:04/06/22 16:30 ID:???
>>974
確かに勘違いしていた。文字列値と文字列オブジェクトの違い
の話かと思ったが実は数値オブジェクトにはconcatがない
という話だったのね。となると文字列連結したい場合は
「num.toString().concat(str)」とかすることになるわけで。
やっぱし面倒だし普通に「+」で連結してくのが楽だよね。
977Name_Not_Found:04/06/22 16:33 ID:???
どうしてもconcatなら
Number.prototype.concat = function(str){
return this.toString() + str;
};
978Name_Not_Found:04/06/22 16:35 ID:???
新スレ
http://pc5.2ch.net/test/read.cgi/hp/1087889503/l50

FAQ(案)は少し離して書き込みまつ。
979977:04/06/22 16:39 ID:???
return this.toString().concat(str);
だったか。
980Name_Not_Found:04/06/22 16:51 ID:???
ここも梅揚げ
981Name_Not_Found:04/06/22 17:57 ID:???
>>977
Number.prototype.concat=String.prototype.concatで充分。
982Name_Not_Found:04/06/22 21:23 ID:???
実のところconcatの引数のオブジェクトの型は何でもいいから
>>962に対するconcatを使う答えとしては
String(moji1).concat(moji2, moji3);
でよいのだ
983Name_Not_Found:04/06/22 22:43 ID:???
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でチェックをはずそうとするとエラーが出て困ってます。
何か良い方法はないでしょうか?
984Name_Not_Found:04/06/22 22:50 ID:???
>>983
window.onload = function(){
    var tmp = document.getElementsByTagName("input");
    for(var i=0 ; i<tmp.length ; i++){
        if(tmp.checked) tmp.checked = false;
    }
}

とか。ほとんど同じだなあ。
エラーはなんていっているの?
985Name_Not_Found:04/06/22 22:55 ID:???
>>981
おお、なんと大胆な!
986983:04/06/22 23:14 ID:???
>>984
オブジェクトを指定しろと言われました、オブジェクトではありませんエラーは出てないんだが、なんでだろう?
987983:04/06/22 23:18 ID:???
あ、ごめん気が付いた}が足りてない・・・。orz
988Name_Not_Found:04/06/23 17:01 ID:???
(*゚ー゚)うめ
989Name_Not_Found:04/06/23 17:22 ID:???
(゚ー゚*)まつ
990Name_Not_Found:04/06/23 17:59 ID:???
( ´,_ゝ`)ハイハイ
991Name_Not_Found:04/06/23 18:05 ID:???
\(∇⌒\)ソーレソレ(/⌒∇)/
992Name_Not_Found:04/06/23 18:10 ID:???
お祭りじゃねぇ!
993Name_Not_Found:04/06/23 18:36 ID:???
( ´゚д゚`)えーーー
994Name_Not_Found:04/06/23 18:49 ID:???
お祭り再開

\(∇⌒\)ソーレソレ(/⌒∇)/
995Name_Not_Found:04/06/23 19:01 ID:???
\(∇⌒\)ハイハイ(/⌒∇)/
996Name_Not_Found:04/06/23 19:05 ID:???
砂肝たべたい。
997Name_Not_Found:04/06/23 19:07 ID:???
( ´゚д゚`)えーーー
998Name_Not_Found:04/06/23 19:22 ID:???
3ウラ 巨1 - 8中
999Name_Not_Found:04/06/23 19:33 ID:???
4表 巨1 - 8中
1000Name_Not_Found:04/06/23 19:45 ID:???
1000ゲット
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。