JavaScript 手取り足取りスレッド

このエントリーをはてなブックマークに追加
907906:2008/09/23(火) 19:24:30 ID:???
あ、もちろんdocument.images["switch"].src = iName;はifの外でも構わないよ
908Name_Not_Found:2008/09/23(火) 20:46:59 ID:???
>>907
見事に代替テキストが変化しました
909908:2008/09/23(火) 20:48:56 ID:???
>>906>>907
肝心のお礼でミス投稿orz
気を取り直して…

見事に代替テキストが変化しました
ありがとうございます!
910Name_Not_Found:2008/09/23(火) 21:26:27 ID:???
詰まりました。失礼します。
変数が500個以上になるので、配列というものを使えるかどうか分からなくて…

a1=20
a2=25
a3=27
〜〜
a500=1200000

例えばこう変数を作っていて
a310の時、a1〜a310までの総合計を計算させるには
どう書けばいいと思いますか?
(選択した変数までの総合計)
911Name_Not_Found:2008/09/23(火) 21:41:46 ID:???
a1=20;
a2=25;
a3=27;
function sum(from,to){

var n=0;

for(var i=from;i<=to;i++)n+=this["a"+i];

return n;

}

alert(sum(1,3));
912910:2008/09/23(火) 22:17:07 ID:???
早速ありがとうございます。
a1の時はa1=20、a2の時はa1+a2=45、a3の時はa1+a2+a3=72、
a4の時はa1+a2+a3+a4…としたいんですが
わたくしの書いてるスクリプトの場合どうなんでしょう…

<SCRIPT language="JavaScript"><!--
function abox(){
if(a1 == document.form1.abox.value){ a1=20; }
if(a2 == document.form1.abox.value){ a2=25; }
if(a3 == document.form1.abox.value){ a3=27; }
}

function sum(from,to){
var n=0;
for(var i=from;i<=to;i++)n+=this["a"+i];
return n;
}
alert(sum(1,3));
//-->
</SCRIPT></head><body>
<form name="form1">
<select name="abox" size="1" tabindex="0">
<option selected value>---</option>
<option value="a1">aaa</option>
<option value="a2">bbb</option>
<option value="a3">ccc</option></select>
<input type="button" value="計算" onclick="sum()"></form></body>
913Name_Not_Found:2008/09/24(水) 00:59:10 ID:???
たびたびすみません
>>904でaltについて質問をした者です
無事に記述が完了し、FTPでアップロードをしたのですが、厄介な問題が発生しました
ブラウザで検証したときには普通に表示されたのにWEB上では何故か表示されません
原因を色々考えた結果アップロード先であるFC2のスクリプトとの競合が原因であるとの
推測を導き出しました
本来ならばFC2側に質問をするべきなのかもしれませんが、今後同じような現象に見舞わ
れる方が出てくる可能性もあると考え、投稿させていただきました
よろしくお願いします
914913:2008/09/24(水) 01:02:04 ID:???
※関係ない可能性もありますが、以下FC2広告スクリプト部分※
※これ以外は>>90>>905さんの改造部を追加したスクリプトとほぼ同じです※
<script type="text/javascript"><!--
var fhp_c_pc = navigator.userAgent.toLowerCase();
var fhp_ie = ((fhp_c_pc.indexOf("msie") != -1) && (fhp_c_pc.indexOf("opera") == -1));
var fhp_cs, fhp_wt, fhp_dm;

if (fhp_ie) {
fhp_cs = document.charset;
}else{
fhp_cs = document.characterSet;
}
fhp_dm = document.location;

fhp_wt = "";
fhp_wt = '<' + 'script src="http://web.fc2.com/footer/footer.php?cs=' + fhp_cs + '&dm=' + fhp_dm + '"><' + '/script>';
document.write(fhp_wt);
//--></script>
</body>
</html>
915Name_Not_Found:2008/09/24(水) 14:11:47 ID:???
>>912
abox ってfunctionがいつ呼ばれて何をしたいのかわからない。
a1-aNまで変数が宣言されていて、プルダウンで選ばれたバリューまでの集計をするなら、
これでいけるかな。

function sum(){
var to=document.form1.abox.value.slice(1,document.form1.abox.value.length-1)-0;
var n=0;
for(var 1=from;i<=to;i++)n+=this["a"+i];
return n;
}
916Name_Not_Found:2008/09/24(水) 14:13:29 ID:???
間違えた。
function sum(){
var to=document.form1.abox.value.slice(1,document.form1.abox.value.length-1)-0;
var n=0;
for(var i=1;i<=to;i++)n+=this["a"+i];
return n;
}
917910:2008/09/25(木) 14:55:44 ID:???
ご指導ありがとうございます。
aboxは、変数が今後2〜3種類になる予定を考えて宣言したものです。
aaa:a1=20 b1=10
bbb:a2=25 b2=12
ccc:a3=27 b3=13
こんな感じで、aとは別の合計も出すつもりでした。
頂いたスクリプトをこのように利用したら、nが全て0になってしまいますorz

<SCRIPT language="JavaScript"><!--
function sum(){
var to=document.form1.abox.value.slice(1,document.form1.abox.value.length-1)-0;
var n=0;
for(var i=1;i<=to;i++)n+=this["a"+i];
alert(n);
return n;
}
//--></SCRIPT></head><body>
<form name="form1">
<select name="abox" size="1" tabindex="0">
<option selected value>---</option>
<option value="a1">aaa</option>
<option value="a2">bbb</option>
<option value="a3">ccc</option></select>
<input type="button" value="計算" onclick="sum()"></form></body>
918Name_Not_Found:2008/09/25(木) 15:19:06 ID:???
ここじゃね?
var to=document.form1.abox.value.slice(1,document.form1.abox.value.length-1)-0;

var to=document.form1.abox.value.slice(1,document.form1.abox.value.length)-0;
919910:2008/09/25(木) 18:20:22 ID:???
NaNになります;;
option valueから見直した方がいいのでしょうか…
920Name_Not_Found:2008/09/25(木) 20:58:54 ID:???
>>919
NaNになるのは
var a1=20;
var a2=25;
var a3=27;
が書いてないからだよ。<script>とfunction sum()の間の行にでも書けば行ける。

sliceで文字分けるって最近知ったけど結構使われてるのか。
何となくいつもmatchでやっちゃうな。値は配列で持って下のような感じ。
<script type="text/javascript">
var a = [0, 20, 25, 27];
function sum(box){
  var end = 0;
  var value = document.form1[box].value;
  var match = value.match(/^([a-z])([\d]*$)/);
  if (match) {
    box = match[1]; // 配列名
    end = match[2]; // いくつまで足すか
  }
  var n = 0;
  for (var i=1; i<=end; i++) {
    n += window[box][i];
  }
  alert(n);
  return n;
}
</script>
で、呼び出し方がonclick="sum('abox')"かな。
box名入れておけばbboxとかできてもいけるし。
921910:2008/09/25(木) 21:25:22 ID:???
すいません、基本的なところを忘れてました・・!
ありがとうございました!!感動しました!
922Name_Not_Found:2008/09/25(木) 21:41:17 ID:???
今見たら
for (var i=1; i<=end; i++) {
  n += window[box][i];
}
だと毎回windowにアクセスするからforの前で
var array = window[box];
ってしてあげて、
array[i]
で回した方が良いのか。Firefoxで3倍くらいスピードが違った。
923Name_Not_Found:2008/09/28(日) 17:29:59 ID:???

<SCRIPT language="JaveScript">
<!--
function kotae(){
var kai =101;
alert(kai);
}
//-->
</SCRIPT>
</HEAD>



<body>
<h1>問題</h1>
13+88= <button onclick="kotae()">答えを見る</button>

</body>





本を読みながら作ったのですが上手く動きません…。
文字の抜けやエクスプローラーのJAVA実行も許可してあるのですが他に原因は何が考えられますか?
924Name_Not_Found:2008/09/28(日) 17:54:11 ID:???
>>923
type="text/javascript"
925Name_Not_Found:2008/09/28(日) 18:03:30 ID:???
<SCRIPT language="JavaScript">でも動くけど
>>923は"JaveScript"だからなあw よく見てみw
926923っす:2008/09/28(日) 18:24:55 ID:???
>>924
>>925


ぬわーッ!!動きました!動いたって言うか反応しました。
何度も見直したのに凡ミスがまだありましたね…。
お騒がせ致しました。そして有難う御座いました!引き続き頑張ります!
927Name_Not_Found:2008/09/28(日) 21:03:45 ID:???
じゃべすくりぷとw
928Name_Not_Found:2008/09/28(日) 22:09:53 ID:q4TPO6L5
function view(){
document.getElementById('menu1').style.visibility='visible';
}

function hide(name){
document.getElementById('Menu1').style.visibility='hidden';
}

<ul>
<li><a href="menu.html" onmouseover="view()" onmouseout="hide()">メニュー1</a>
 <ul id="menu1" style="visibility:hidden">
 <li><a href="">リスト1</a></li>
 <li><a href="">リスト2</a></li>
 </ul>
</li>
</ul>

「メニュー1」にマウスを乗せると、サブメニュー(リスト1など)を表示させる動作を求めてます。
サブメニューは表示したのですが、「メニュー1」からマウスが離れるとサブメニューが消えてしまいます。

やりたいことは
「メニュー1」からサブメニューに移動してもサブメユーが消えないようにしたい
「メニュー1」でサブメニューを表示した後、サブメニュー以外のところにマウスがいったらサブメニューを消したい

以上の2点です。どなたかご教授ご指摘お願いいたします。
929Name_Not_Found:2008/09/29(月) 01:04:25 ID:???
<li onmouseover="view()" onmouseout="hide()"><a href="menu.html">メニュー1</a>
これでどうだい?
930910:2008/09/29(月) 22:21:30 ID:???
たびたび失礼します。
当方で応用して使おうと思ったらどうしてもうまく行かないので
option valueに変数を入れてしまおうかと思ったのですが
これはこれで動作しません…。
どこか勘違いしていることは分かっても八方塞がりですorz
よろしくお願いします。


<SCRIPT language="JavaScript"><!--
function sum(){
var to=parseInt(document.form1.abox.value);
var n=0;
for(var i=1;i<=to;i++)n+=this[+i];
alert(n);
return n;
}
//--></SCRIPT></head><body>
<form name="form1">
<select name="abox" size="1" tabindex="0">
<option selected value>---</option>
<option value="20">aaa</option>
<option value="25">bbb</option>
<option value="27">ccc</option></select>
<input type="button" value="計算" onclick="sum()"></form></body>
931Name_Not_Found:2008/09/30(火) 00:25:43 ID:???
this[+i]
何これ?
932Name_Not_Found:2008/09/30(火) 00:54:49 ID:???
CSS切り替えスクリプトのcsskks.js使ってるんですが
safariやgoogle chromeでは上手く代替cssに切り替えできません。どうすればいいでしょうか。
933Name_Not_Found:2008/09/30(火) 10:45:47 ID:???
safariやgoogle chromeに対応したやつを自分で作れば
934Name_Not_Found:2008/09/30(火) 20:52:13 ID:???
すみません、どう改造すればいいか分からないです。
935Name_Not_Found:2008/10/01(水) 23:04:13 ID:muL0j2+8
すみません。お願いです。
いろいろあってここにたどりつきました。

「ボタン押すたびに数字が変わるプログラム 」
みたいなの作ってもらえませんか?

イメージとしては
000-999まで3桁の数字が
スペースキー押すたびにランダムで変わる

そんなプログラムをメモ帳に貼り付けて、htmlで保存して
遊びたいんだ

できるものですか?
936Name_Not_Found:2008/10/02(木) 01:17:52 ID:???
ほれ、
スペースキーじゃなくてF5キーだが、かまわんだろ?

<script>
document.write((Math.random()*1000).toString().slice(-3))
</script>
937Name_Not_Found:2008/10/02(木) 09:39:22 ID:???
すぐ飽きそうな遊びだw
938Name_Not_Found:2008/10/02(木) 10:08:04 ID:iGs374Ng
>>936
ありがとう!
これで1日遊べますw
939Name_Not_Found:2008/10/02(木) 13:52:03 ID:???
おまえ収容所とかでも遊び見つけて生きていけそうだな。
ある意味才能だと思うよ。
940Name_Not_Found:2008/10/02(木) 14:07:55 ID:???
エロ画像のナンバリングだと思うんだ
出た番号の画像で1日遊ぶと考えるんだ
941Name_Not_Found:2008/10/02(木) 19:12:04 ID:???
>>936 が明らかに間違っている件については誰も突っ込んでくれないのか。
942Name_Not_Found:2008/10/02(木) 19:32:37 ID:???
>>941
ごめん、素でわかんないw
943966:2008/10/03(金) 12:41:27 ID:3uVerI19
>>941
誰か直して下さい!
一応実行したけど、F5キーを押すと反応はあるけど
何も表示されない・・・・
944Name_Not_Found:2008/10/03(金) 13:26:49 ID:???
headの中でも外でも動くと思うが…

<html lang="ja">
<head>
<title></title>
</head>
<body>
<script>
document.write((Math.random()*1000).toString().slice(-3))
</script>
</body>
</html>

だぞ?
まさかブラウザでJavascriptを切ってるというオチじゃないよな?
945966:2008/10/03(金) 13:37:58 ID:3uVerI19
>>944
あ、そうでした、スンマセン(汗)
ブラウザの詳細設定を変えたら、
数字が表示されてF5キーで変更されるようになりました、
お騒がせしました。
946Name_Not_Found:2008/10/03(金) 19:47:41 ID:VHcBshOb
チェックボックスにチェック入れると連動してテキストボックスに文字が入るのって出来る?

sageにチェック入れるとアドレス欄にsageって入るような奴

誰か頼む。
947Name_Not_Found:2008/10/04(土) 00:50:49 ID:???
出来る

<html>
<head>
<title>checkbox and text</title>
<script type="text/javascript">
<!--
function change() {
document.getElementById("sg").value = "sage";
}
// -->
</script>
</head>
<body>
<input type="checkbox" onClick="change()" />sage <input type="text" id="sg" />
</body>
</html>
948Name_Not_Found:2008/10/04(土) 01:38:55 ID:???
恐れ入ります。。下記のコードでlabelと同じ文字がalertされるようにするにはどうすればいいですか?
このままだとどれを押しても"s"になってしまいます。
<script type="text/javascript">
<!--
var labels = 'labels'.split('');
for (var i=0; i<labels.length; i++) {
var input = document.createElement('input');
var label = labels[i]
input.setAttribute('type', 'button');
input.setAttribute('class', 'submit');
input.setAttribute('style', 'margin-left:4px');
input.setAttribute('value', label);
input.addEventListener("click", function(){alert(label)}, false);
document.getElementsByTagName('html')[0].appendChild(input);
}
// -->
</script>
<html />
949Name_Not_Found:2008/10/04(土) 03:26:17 ID:???
1 サマータイム対応・非UTC依存世界時計スクリプト
ttp://www.ueda.info.waseda.ac.jp/~gaku/js/how034.html

2 サマータイム非対応・UTC依存世界時計スクリプト
ttp://satokoto.blog10.fc2.com/blog-entry-404.html

1を2のようにUTC依存にするにはどうすればよろしいのでしょうか?
950Name_Not_Found:2008/10/04(土) 15:12:09 ID:???
>>948
input.addEventListener("click", function(){alert(label)}, false);
→ input.addEventListener("click", function(){alert(this.value)}, false);
                               ~~~~~~~~~
951Name_Not_Found:2008/10/05(日) 00:02:59 ID:???
>>950
できました!本当にありがとうございます!
952Name_Not_Found:2008/10/05(日) 23:18:30 ID:???
質問です。
<from id="hogeF">
<select id="hogeS">
<option>上</option>
<option>中</option>
<option>下</option>
</select>
</form>

こういったソースがあった場合に

上 初期表示

上 ←選択された時の場所



通常上記のようになるとおもうんですが、
これを下記のようにすることはできますか?
できるようでしたらご教示願います。

中 初期表示


中 ←選択された時の場所


953Name_Not_Found:2008/10/05(日) 23:36:53 ID:???
<option selected>中</option>
javascriptなんか必要ない
954Name_Not_Found:2008/10/05(日) 23:57:33 ID:???
>>953
ありがとうございます。
そんな属性があったんですね。勉強不足でした。
955Name_Not_Found:2008/10/06(月) 10:08:43 ID:???
そこはあえてJavaScriptでselectedしてやるのがスジなんじゃないだろうか
956Name_Not_Found
http://www.ibm.com/developerworks/jp/web/library/wa-aj-overhaul3/index.html

jCarousel で、画像のセットをスライドショーにしたいです
どうやらflickerが関係してるようなのですがどこをどうすればflickerの画像を
変更できるのかがわかりません。 この辺だと思うのですが、、、

var getItemHTML = function(d) {
return '<img class="product" alt="product photo" width="' +
d.width + '" height="' +
d.height + '" src="../img/' +
d.url + '" />Photo credit: <a target="_blank" href="http://www.flickr.com/photos/' +
d.creditURL + 's/">' +
d.creditLabel + '</a>, Flickr, Create Commons Attribution License'
;
どなたかご教授お願します。