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

このエントリーをはてなブックマークに追加
952Name_Not_Found:2012/04/07(土) 21:54:07.31 ID:???
ゴメン何言ってるのかわかんない
953Name_Not_Found:2012/04/07(土) 22:08:30.80 ID:???
>>951
えっ?
954Name_Not_Found:2012/04/07(土) 23:50:06.72 ID:v4P1HbSx
>>951

>https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/forEach

Array.prototype.forEachなんて使ったことないやつの方が多いんじゃね?w現状環境依存なら自作eachのほうがいいしw
おそらく、第二引数のthisArgをいってるんだろうが、あれ、定石になんてならんだろ。
言語仕様とか速度面で、ああいうインターフェースに統一してあるけど、使い勝手悪い。

Function.prototype.bindがあれば、俺はそっち使うが(なければ自作)、unclickするのに変数に保持し解かないといけないのが難点だが。
955Name_Not_Found:2012/04/07(土) 23:56:14.80 ID:v4P1HbSx
function __bind(){

$("#show").click(function() {
alert(n);
});
956954:2012/04/07(土) 23:56:52.73 ID:v4P1HbSx
まちがえた、
957Name_Not_Found:2012/04/08(日) 01:21:47.01 ID:???
>>948
どんなプロパティを持っててどんなイベントが使えて
っていう情報が見れないですよそこわ
958Name_Not_Found:2012/04/08(日) 09:02:39.29 ID:???
新スレは975超えたら。テンプレは同じで。
959Name_Not_Found:2012/04/08(日) 09:19:12.80 ID:DqmcrH7E
>>954
純正forEachのいかんところは
文字数多い上にShift押しもイチ文字混ざっているところだ
960Name_Not_Found:2012/04/08(日) 09:41:45.95 ID:???
>>950
動作確認してないので、ちょっとアレだけど
いちばん上のコンストラクタのとこのは、俺は単純に次のように書いちゃう。
var Int = function(i) {
this.n = i;
var self = this; // ハンドラの外でthisを別の変数に保持
$("#show").click(function(){ alert(self.n); });
};

いちばん下の実行部分ならこんな風に。こっちの場合は"定石"といってもいい気がするけどどうか
$("#succ").click(function() {
int.succ.apply(int); // 呼び出し先のthisを指定して呼び出す
});

あとclick()の第一引数にコールバックに渡すデータを指定できたんじゃなかったかな?
コンストラクタのをそれで書くと、こんな感じで書けるんでは↓
※あくまでも擬似コード。コールバックではイベントオブジェクトから取り出せたような記憶
$("#show").click({self:this}, function(e) { alert(e.self.n) });
961Name_Not_Found:2012/04/08(日) 10:52:05.82 ID:???
イベントバインド系メソッドに渡されたデータを保持するのはe.dataプロパティ
962Name_Not_Found:2012/04/08(日) 16:07:30.49 ID:???
フォーム部分
<form name="abc">
<input type="radio" name="test[0]"><input type="radio" name="test[0]"><br>
<input type="radio" name="test[1]"><input type="radio" name="test[1]"><br>
...
</form>

スクリプト部分
for(var i=0; i<2; i++){
document.abc.elements['test[i]'][0].checked = true;
}

○○
○○
とあるラジオボタンに
●○
●○
とチェックをつけたいのですがうまくいきません
document.abc.elements['test[0]'][0].checked = true;
document.abc.elements['test[1]'][0].checked = true;

●○
●○

document.abc.elements['test[0]'][i].checked = true;

○●
○○
なら動くのに何故でしょうか
お願いします
963Name_Not_Found:2012/04/08(日) 16:59:03.77 ID:???
>>962
全部「test[i]」という同じ名前になってるからでしょ。自分で「test[i]」って書いてるじゃん。
そのiだけ自分の脳内で0や1に置き換わってくれるとか思うのは勝手な勘違いなだけ。
対処方法は過去スレ見れば山のように前例があるから。
964Name_Not_Found:2012/04/08(日) 17:20:36.97 ID:???
document.abc.elements['test[' + i + ']'][0].checked = true;
というオチでしょ?
965962:2012/04/08(日) 17:27:57.09 ID:???
>>963-964
解説と回答ありがとうございました
[' + i + ']の + 試していましたが ' までは試してませんでした
勉強不足、失礼しました
966Name_Not_Found:2012/04/08(日) 18:18:00.13 ID:???
PHPer…
967Name_Not_Found:2012/04/08(日) 20:29:48.82 ID:???
Perlとかもそういった書き方できるから一概にどうとは言えんな
968Name_Not_Found:2012/04/08(日) 21:09:56.31 ID:???
こんな書き方するの PHPer くらいだろ。
Perl でどんな使い方を期待して、こんな記法するんだ。
969Name_Not_Found:2012/04/08(日) 22:04:45.90 ID:???
$a = 1;
print "$a 回目";
これで変数aが展開されるのはPHPもPerlも一緒
逆に
print '$a 回目';
これで変数aが展開されないのもPHP・Perl共に同じ
970Name_Not_Found:2012/04/08(日) 22:12:42.62 ID:???
まさか変数展開の話をしていたとは…
それは単にプログラミング初心者のミスじゃないか。
971Name_Not_Found:2012/04/08(日) 22:15:15.71 ID:???
javascriptってシングルクォートもダブルクォートも変わりないからねー
972Name_Not_Found:2012/04/08(日) 22:36:10.43 ID:???
>>970
今回の問題はそれが原因だったんだから
変数展開の話しを想定するのが普通だろ
逆にどんな話を考えてたのか聞きたいわ

973Name_Not_Found:2012/04/08(日) 23:08:32.81 ID:???
>>972
え?お前↓の書き方見て、Perl 使ってるかも、とか思うの?w

<input type="radio" name="test[0]">
974Name_Not_Found:2012/04/08(日) 23:46:33.48 ID:???
>>973
おい、くだらねえ連投してるお前、さっさと新スレ立てろよ
975Name_Not_Found:2012/04/08(日) 23:53:26.57 ID:???
>>974
ほらよ、カス。

+ JavaScript の質問用スレッド vol.99 +
http://toro.2ch.net/test/read.cgi/hp/1333896724/
976Name_Not_Found:2012/04/09(月) 00:03:13.32 ID:???
ありがとぅー!
977Name_Not_Found:2012/04/09(月) 06:07:25.39 ID:???
何この流れ、、、
978Name_Not_Found:2012/04/09(月) 12:26:23.21 ID:???
ネットで調べながら作ったのですが、詰まってしまいました。どなたかお力を貸していただけないでしょうか・・・

【環境】 IE8, Firefox, chrome
【何をしたのか】 マウスクリック
【エラーメッセージ】 Uncaught TypeError: Cannot set property 'src' of null
【期待する結果】 一つのものがあって、カラーヴァリエーションをそれぞれ表示させたいと考えています。
           そのために画像の切替をjavascriptで行おうとしましたが、
           同ページに一つだけの場合なら上手くいくのですが、複数になると全く動きません。
【サンプルHTML】
<img src="./images/oya_a_01.jpg" name="oya_a" /> //切替画像その1
<img src="./images/01.jpg" onClick="chgImg('oya_a',0)"/>
<img src="./images/02.jpg" onClick="chgImg('oya_a',1)"/>

<img src="./images/oya_b_01.jpg" name="oya_b" /> //切替画像その2
<img src="./images/03.jpg" onClick="chgImg('oya_b',2)"/>
<img src="./images/04.jpg" onClick="chgImg('oya_b',3)"/>

【サンプルjavascript】
<script type="text/javascript">
if(document.images) {
var imgs = new Array();
imgs[0] = new Image(); imgs[0].src ="./images/01.jpg";
imgs[1] = new Image(); imgs[1].src ="./images/02.jpg";
imgs[2] = new Image(); imgs[2].src ="./images/03.jpg";
imgs[3] = new Image(); imgs[3].src ="./images/04.jpg";
}
function chgimg(imgNo, imgname) {
if(document.images) {
document.images[imgNo].src = (imgs[imgname]) ? imgs[imgname].src : imgname;
}
}
979Name_Not_Found:2012/04/09(月) 12:30:38.58 ID:???
chgimgの文字の大小
chgimgの引数の順序
980Name_Not_Found:2012/04/09(月) 13:17:44.24 ID:???
>>979
ありがとうございます。
ご指摘いただいた修正をした結果、エラーはでなくなりましたが、
正常な動作はしませんでした・・・。

クリックした画像の一個手前の画像が切り替わってしまいました
981Name_Not_Found:2012/04/09(月) 14:07:42.47 ID:???
chgimgの引数の順序 ?
982Name_Not_Found:2012/04/09(月) 14:31:16.77 ID:aJhgikaX
>>980
クリックする度にその対象となる要素を探しに行くのではなく
まず最初に親子画像の要素をカップリングしておいて
それからイベントハンドラを設定すればいいよ
983Name_Not_Found:2012/04/09(月) 15:41:42.31 ID:???
親子画像の要素をカップリング?
984Name_Not_Found:2012/04/09(月) 15:50:22.50 ID:muZTNTDO
srcが変わるimg→親、クリックするimg→子、つー意味です
985Name_Not_Found:2012/04/09(月) 16:00:36.61 ID:???
こゆのどーよ
<img src="./images/oya_a_01.jpg" name="oya_a" /> //切替画像その1
<img src="./images/01.jpg" onClick="document.images.oya_a.src=this.src"/>
<img src="./images/02.jpg" onClick="document.images.oya_a.src=this.src"/>
986Name_Not_Found:2012/04/09(月) 18:32:13.90 ID:???
>>985
動きません
987Name_Not_Found:2012/04/09(月) 20:49:01.84 ID:5+GebVdF
javascript で、結果が小数点にならない、普通のプログラミング言語で普通の動きをする
割り算はないのですが


p = (p - p % 9) / 9;
こうすれば見た目小数点は入ってないようではありますが、
こういうトリック使わない除算はありますか
988Name_Not_Found:2012/04/09(月) 20:56:45.91 ID:???
p = Math.floor(p) / 9;
989Name_Not_Found:2012/04/09(月) 20:59:44.03 ID:???
p = Math.floor(p / 9);
990Name_Not_Found:2012/04/09(月) 21:07:12.10 ID:???
>普通のプログラミング言語で普通の動きをする

この「普通の動きをする普通のプログラミング言語」を列挙してください
991Name_Not_Found:2012/04/09(月) 21:11:15.96 ID:???
なでしこ言語
992Name_Not_Found:2012/04/09(月) 21:49:42.77 ID:???
>>987
小数点はドット(ピリオド)のこと
993Name_Not_Found:2012/04/09(月) 22:03:42.15 ID:???
sed「コマンド」という表現に違和感がある。
994Name_Not_Found:2012/04/10(火) 00:43:40.63 ID:???
スレ違い
995Name_Not_Found:2012/04/10(火) 05:18:22.00 ID:???
残尿感がある。
996Name_Not_Found:2012/04/10(火) 08:12:27.75 ID:???
997Name_Not_Found:2012/04/10(火) 08:16:44.93 ID:???
>>987
「普通のプログラミング言語」なんて幻想。たまたま世界最初の高水準言語FORTRANがそうなって
いて、多くの言語が真似しただけ。著名な言語ではPascalとかCommonLispとかはそうなってない。
だからJavaScriptなんかごく「普通」だ。CとJavaとC++に似てるのが普通とかいうのは傲慢。
998Name_Not_Found:2012/04/10(火) 08:25:59.96 ID:???
話がよく分からないから各言語での結果を書いてよ
999Name_Not_Found:2012/04/10(火) 08:30:31.78 ID:???
>>987
p|=0
1000Name_Not_Found:2012/04/10(火) 08:33:15.10 ID:???
>>997
普通とか言うくらいでいちいち反応して荒らすな
心が狭い奴らだな
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。