私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ+ JavaScript の質問用スレッド vol.93 +

みんなの評価 :
レスフィルター : (試験中)
tableの中のcellをクリックすると、
新しいrowが生成され、クリックされたcellがあるrowの一行下に追加される。
というプログラムを作っています。
すべてのcellのオンクリックイベントに以下のように指定しています。
var row = table.insertRow(lineNum+1);
var cell = row.insertCell(0);
cell.innerHTML = lineNum;
はじめのひとつをクリックしたときは想定通りに動くのですが、
クリックするごとにrowが追加され、rowの行数が増えてしまい、
table.insertRow(lineNum+1)で指定した場所からズレて行ってしまう問題が起こります。
アルゴリズムが悪いのだと思いますが、どうすれば解決できるのかアドバイスをお願いします。
新しいrowが生成され、クリックされたcellがあるrowの一行下に追加される。
というプログラムを作っています。
すべてのcellのオンクリックイベントに以下のように指定しています。
var row = table.insertRow(lineNum+1);
var cell = row.insertCell(0);
cell.innerHTML = lineNum;
はじめのひとつをクリックしたときは想定通りに動くのですが、
クリックするごとにrowが追加され、rowの行数が増えてしまい、
table.insertRow(lineNum+1)で指定した場所からズレて行ってしまう問題が起こります。
アルゴリズムが悪いのだと思いますが、どうすれば解決できるのかアドバイスをお願いします。
クリックされた後、そのクリックされたセルは何行目なのかを調べ
なければ「絶対に駄目」だよね。だって何行目なのか分からないまま
正しい位置に挿入なんてできないから。
なければ「絶対に駄目」だよね。だって何行目なのか分からないまま
正しい位置に挿入なんてできないから。
>>151
何行目かを判定する必要は全くない
クリックされた要素から見て insertBefore もしくは appendChild すればいいだけ
あと、cells にイベントを貼り付けるやり方だと insert する度にイベント定義しなくちゃいけないから tbody あたりにイベント定義する方がいいと思う
何行目かを判定する必要は全くない
クリックされた要素から見て insertBefore もしくは appendChild すればいいだけ
あと、cells にイベントを貼り付けるやり方だと insert する度にイベント定義しなくちゃいけないから tbody あたりにイベント定義する方がいいと思う
> クリックされたセルは何行目なのかを調べなければ「絶対に駄目」
そうでもない。
そうでもない。
ウェブアプリケーションという不幸 】
現在、多くのプログラマ(素人)が
ウェブアプリケーションというものが
ベストな正しい方向だと勘違いしている。
ソフトウェアの作るにおいて
そのアプリケーションに応じた
状態遷移を実装するというのは
基本中の基本である。
その点においてウエブブラウザという
ある状態遷移が実装されているアプリケーションの上に
また別のアプリケーションを実装するのは
論外である。
そこまでするなら普通にアプリケーションを実装
してダウンロードして使って
もらえばいいのである。
ウェブアプリケーションとは
虚構にしか他ならない。
ウェブアプリケーションを
作ろうとしているあなた。
今すぐ普通のアプリケーション
とし設計し始めては
いかがだろう。
そうすればきっと後悔しないですむ。
現在、多くのプログラマ(素人)が
ウェブアプリケーションというものが
ベストな正しい方向だと勘違いしている。
ソフトウェアの作るにおいて
そのアプリケーションに応じた
状態遷移を実装するというのは
基本中の基本である。
その点においてウエブブラウザという
ある状態遷移が実装されているアプリケーションの上に
また別のアプリケーションを実装するのは
論外である。
そこまでするなら普通にアプリケーションを実装
してダウンロードして使って
もらえばいいのである。
ウェブアプリケーションとは
虚構にしか他ならない。
ウェブアプリケーションを
作ろうとしているあなた。
今すぐ普通のアプリケーション
とし設計し始めては
いかがだろう。
そうすればきっと後悔しないですむ。
HTMLやHTTPを悪者にはしていない。
TCP/IPができあがり、その応用として、ファイルを送ったりするようになった。
ファイルの中身のテキストにデータ構造をもたせ、それはつまりツリー構造なわけだが
その実装としてのハイパーテキスト、つまりHTMLという送る側と送られる側で決め事(プロトコル)
をつくり、画像や音楽など表現の幅を広げることは当然の成り行きだっただろう。
そして、その送る側としてのHTMLファイルサーバ、つまりWebサーバ、送られる側としてのプロトコルの解釈・表示系としての
ブラウザというアプリケーション。
ここまではいい。
だが、そこから先が素人の発想というか、いそがばまわれを忘れた者の愚かな発想。
つまりブラウザ上で、アプリケーションを動かすという発想なのである。
ブラウザというのは、おくられてきたステートレスな通信内容の一瞬の表示手段でしかない。
つまりアプリケーションのためのひとつのパーツなのである。
Windowsでいえば、コントロールのひとつ。(実際WebBrowserというコントロールがある。)JavaならWebClietnだ(これは、ブラウザではないが。)。
包含関係が逆なのである。
ブラウザ上にアプリケーションを作るのは愚かなブームである。
TCP/IPができあがり、その応用として、ファイルを送ったりするようになった。
ファイルの中身のテキストにデータ構造をもたせ、それはつまりツリー構造なわけだが
その実装としてのハイパーテキスト、つまりHTMLという送る側と送られる側で決め事(プロトコル)
をつくり、画像や音楽など表現の幅を広げることは当然の成り行きだっただろう。
そして、その送る側としてのHTMLファイルサーバ、つまりWebサーバ、送られる側としてのプロトコルの解釈・表示系としての
ブラウザというアプリケーション。
ここまではいい。
だが、そこから先が素人の発想というか、いそがばまわれを忘れた者の愚かな発想。
つまりブラウザ上で、アプリケーションを動かすという発想なのである。
ブラウザというのは、おくられてきたステートレスな通信内容の一瞬の表示手段でしかない。
つまりアプリケーションのためのひとつのパーツなのである。
Windowsでいえば、コントロールのひとつ。(実際WebBrowserというコントロールがある。)JavaならWebClietnだ(これは、ブラウザではないが。)。
包含関係が逆なのである。
ブラウザ上にアプリケーションを作るのは愚かなブームである。
現在はes5はまだまだでes3が一般的だと思うんですが、firefox js (mozilla仕様のjs)だと現在どのバージョンが一般的に使われてる(許容されてる)んでしょうか?
>>161
IE8以下を除けばES5の実装は整っていると思うけどなあ
IE8以下を除けばES5の実装は整っていると思うけどなあ
>>156
this.firstChild.data かねえ
短いコードが必ずしもいいわけではないんだけどね
this よりも event.target や event.currentTarget がDOMらしいと思うし、場合によっては textContent が適切
this.firstChild.data かねえ
短いコードが必ずしもいいわけではないんだけどね
this よりも event.target や event.currentTarget がDOMらしいと思うし、場合によっては textContent が適切
>>157-158
google先生にも言って今後webアプリ作らないよう説得してください。
google先生にも言って今後webアプリ作らないよう説得してください。
mozilla rhinoを使っているので実際のところバージョンに神経質になることはありません。
しかし未だにes3が一般的だとgenerator式やタプル渡しなどがes3系のブラウザだと使えないので、このままだとrhino jsで書いたコード修正が必要になりかなり面倒になります。
es5がまだ一般普及してないなら旧式の構文で書こうかなっているので普及してるjsのバージョンは気になります。
しかし未だにes3が一般的だとgenerator式やタプル渡しなどがes3系のブラウザだと使えないので、このままだとrhino jsで書いたコード修正が必要になりかなり面倒になります。
es5がまだ一般普及してないなら旧式の構文で書こうかなっているので普及してるjsのバージョンは気になります。
MDNではタプル渡しじゃなくて分割代入と翻訳してましたね。
このスレでバージョンやjs1.6以降についての反応がないところを見ると未だにes3のままでes5系のコードはまだ普及もしてないようですね。
このスレでバージョンやjs1.6以降についての反応がないところを見ると未だにes3のままでes5系のコードはまだ普及もしてないようですね。
>>170
分割代入とかは今のところ実装としてはMozilla JavaScriptの独自実装に過ぎず
仕様としてはES5ではなく、ES.nextの仕様に取り込まれる見通しだよ
ES5は既に最新のブラウザーでだいたい実装済みだよ
http://kangax.github.com/es5-compat-table/
分割代入とかは今のところ実装としてはMozilla JavaScriptの独自実装に過ぎず
仕様としてはES5ではなく、ES.nextの仕様に取り込まれる見通しだよ
ES5は既に最新のブラウザーでだいたい実装済みだよ
http://kangax.github.com/es5-compat-table/
>>168
見下してるようには見えませんでしたが・・
見下してるようには見えませんでしたが・・
同じjsを扱うようですけどそもそも板が違うので内容や目的はまったく違うと思いますよ
>>180
ES5の質問しかないように見えるけど、どの辺が問題?
ES5の質問しかないように見えるけど、どの辺が問題?
<div id="P">
<div class=a>aaa</div>
<div class=b>bbb</div>
</div>
$('#a').click.(function(){
クリックしたaと同じ要素内にあるid=bのhtml
}
とやりたいのですがprentやthisの指定が上手くいきません
本当に初歩的な質問ですみません
<div class=a>aaa</div>
<div class=b>bbb</div>
</div>
$('#a').click.(function(){
クリックしたaと同じ要素内にあるid=bのhtml
}
とやりたいのですがprentやthisの指定が上手くいきません
本当に初歩的な質問ですみません
失礼します。
jQueryで非同期POSTをする場合このようなサンプルがありますが
$.post("hoge.php", {"hoge1" : 1, "hoge2": "hoge"}, my_func);
引数に自分のform要素内のinput要素すべてを一括して送信するにはどうしたらいいでしょうか?
簡単に言えば普通にsubmitしていたページを非同期で更新したいのです。
したがってform要素すべてをtargetのURLに送信し、もどってきたhtmlDomを自分自身に適用したいのです。
ヒントだけでもお願いいたします。
jQueryで非同期POSTをする場合このようなサンプルがありますが
$.post("hoge.php", {"hoge1" : 1, "hoge2": "hoge"}, my_func);
引数に自分のform要素内のinput要素すべてを一括して送信するにはどうしたらいいでしょうか?
簡単に言えば普通にsubmitしていたページを非同期で更新したいのです。
したがってform要素すべてをtargetのURLに送信し、もどってきたhtmlDomを自分自身に適用したいのです。
ヒントだけでもお願いいたします。
>>186
setTimeout(anim_func, 2000, 1);
setTimeout(anim_func, 2000, 1);
俺毎回思うんだけど、処理でsetTimeout(func,1)ってあるけど
setTimeout(func,0)でよくね?
俺毎回そうやってるんだけどコレもしかて悪いやり方?
マウスアウト→マウスオーバーって動作が行われるとき
var a=1
マウスアウト{
a =0
setTimeout(alert(a),0)
}
マウスオーバー{
a=1
}
ってやるとちゃんとaは1になってるし
setTimeout(func,0)でよくね?
俺毎回そうやってるんだけどコレもしかて悪いやり方?
マウスアウト→マウスオーバーって動作が行われるとき
var a=1
マウスアウト{
a =0
setTimeout(alert(a),0)
}
マウスオーバー{
a=1
}
ってやるとちゃんとaは1になってるし
>>188
最小値は仕様で定められていたような
最小値は仕様で定められていたような
>>189
クオートで括ってないから
クオートで括ってないから
なんでそんなトリッキーな書き方してるかわからないが
HTMLは基本class="class1 class2"って書くのがデフォだから
そんな書き方やめんしゃい
気になってチンコムズムズしてるんだろうけど正規じゃない書き方はいつの時代も弾かれる
HTMLは基本class="class1 class2"って書くのがデフォだから
そんな書き方やめんしゃい
気になってチンコムズムズしてるんだろうけど正規じゃない書き方はいつの時代も弾かれる
>>188
それだとsetTimeout使う意味がなくね?
それだとsetTimeout使う意味がなくね?
>>196
もしも、setTimeoutの中身が無いときと同じような順番で実行されるとしたら
a=0の直後に実行されるわけだから0がalertされるわけじゃん?
んでもマウスアウト→マウスオーバーの順番に実行されるような状況下でもちゃんとマウスオーバーのaの値が適応される
var a=1
マウスアウト{
a =0
alert(アウト)
setTimeout(alert(a),0)
}
マウスオーバー{
a=1
alert(オーバー)
}
ってやるとアウト→オーバー→1ってなる
最小値設定されてんのか、そうなんか。処理の優先度だと思ってた
もしも、setTimeoutの中身が無いときと同じような順番で実行されるとしたら
a=0の直後に実行されるわけだから0がalertされるわけじゃん?
んでもマウスアウト→マウスオーバーの順番に実行されるような状況下でもちゃんとマウスオーバーのaの値が適応される
var a=1
マウスアウト{
a =0
alert(アウト)
setTimeout(alert(a),0)
}
マウスオーバー{
a=1
alert(オーバー)
}
ってやるとアウト→オーバー→1ってなる
最小値設定されてんのか、そうなんか。処理の優先度だと思ってた
>>197
ごめんsetTimeout(alert(a),0)とalert(a)の違いがわからなかった
ごめんsetTimeout(alert(a),0)とalert(a)の違いがわからなかった
初歩的な質問すいません。
var year = 2011;
var name;
name = year;
var nextyear;
nextyear = name + 1;
alert(nextyear);
この結果が20111になるのは何故でしょうか?
var year = 2011;
var name;
name = year;
var nextyear;
nextyear = name + 1;
alert(nextyear);
この結果が20111になるのは何故でしょうか?



類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.93 + (1001) - [100%] - 2011/12/10 18:31
- + JavaScript の質問用スレッド vol.97 + (1001) - [97%] - 2012/3/1 3:31
- + JavaScript の質問用スレッド vol.96 + (1001) - [97%] - 2012/1/28 23:01
- + JavaScript の質問用スレッド vol.90 + (1001) - [97%] - 2011/10/26 4:18
- + JavaScript の質問用スレッド vol.90 + (1001) - [97%] - 2011/11/15 20:32
- + JavaScript の質問用スレッド vol.99 + (1001) - [97%] - 2012/5/7 4:32
- + JavaScript の質問用スレッド vol.98 + (1001) - [97%] - 2012/4/9 14:46
- + JavaScript の質問用スレッド vol.83 + (1001) - [97%] - 2011/2/24 8:02
- + JavaScript の質問用スレッド vol.94 + (1001) - [97%] - 2012/1/8 15:46
- + JavaScript の質問用スレッド vol.95 + (1001) - [97%] - 2012/1/17 4:16
- + JavaScript の質問用スレッド vol.113 + (1001) - [95%] - 2014/1/25 12:46
- + JavaScript の質問用スレッド vol.131 + (1000) - [95%] - 2017/1/25 8:01
- + JavaScript の質問用スレッド vol.130 + (1001) - [95%] - 2017/11/25 20:45
- + JavaScript の質問用スレッド vol.131 + (1004) - [95%] - 2018/3/7 13:30
- + JavaScript の質問用スレッド vol.132 + (1001) - [95%] - 2018/4/19 11:00
- + JavaScript の質問用スレッド vol.113 + (1001) - [95%] - 2014/3/15 21:30
- + JavaScript の質問用スレッド vol.133 + (1001) - [95%] - 2018/6/8 10:45
トップメニューへ / →のくす牧場書庫について