1read 100read
2013年01月Web制作42: + JavaScript の質問用スレッド vol.104 + (890) TOP カテ一覧 スレ一覧 2ch元 削除依頼
【SEO】Google対策 パート23【Google】 (992)
関東圏のWeb作成会社 (379)
Find Job! の求人が糞すぎて 糞すぎて (639)
独自拡張、草案段階のCSSについて語れ (369)
楽天市場むかつく人の数 → (605)
雑談スレ (402)

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


1 :2012/11/10 〜 最終レス :2013/01/17
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-4のテンプレを読んだ上で質問してください。
■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
  (ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。(なりすまし及び煽り防止のため)
(4) 常に自発的に調べる心構えを持ってください。
  具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
  わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
  ※必ず「問題の事象が再現されること」を確認してください。
   必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。質問テンプレートを活用してみてください。
■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。(ex: IE8, Firefox4)
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
 1レスに収まらないならコード投稿サイトを利用してください。
 http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/

2 :
■前スレ
+ JavaScript の質問用スレッド vol.103 +
http://toro.2ch.net/test/read.cgi/hp/1347073302/
■過去スレ全集
http://www2.atpages.jp/mirror/2ch/javascript/
http://usamimi.info/~mirrorhenkan/2ch/javascript/ (閲覧のみ)
http://wing2.jp/~mirrorhenkan/2ch/javascript/ (閲覧のみ)
■テンプレ案
http://jsfiddle.net/fH4cC/10/show/
■関連スレ
ECMAScript デス 4
http://toro.2ch.net/test/read.cgi/tech/1325448978/
【jQuery】JavaScript ライブラリ総合質問所 vol.2
http://toro.2ch.net/test/read.cgi/hp/1350728831/
WSH(・∀・)スレッド! Part 4
http://toro.2ch.net/test/read.cgi/tech/1243095768/ →消失中
【WHATWG】HTML5 Part4【W3C HTML WG】
http://toro.2ch.net/test/read.cgi/hp/1329529892/
Webサイト制作初心者用質問スレ part232
http://toro.2ch.net/test/read.cgi/hp/1351174578/
CSS初心者スレッド=12th=
http://toro.2ch.net/test/read.cgi/hp/1343429848/
Canvasについて語ろう
http://toro.2ch.net/test/read.cgi/hp/1305093769/

3 :
■主要FAQ (全部は http://fiddle.jshell.net/vSqKr/33/show/ )
Q1. 別窓・フレーム内容やローカルファイルを読み書きしたいのですが…
A1. 別サーバのページやファイルの内容はセキュリティ制約でアクセス不可です。
Q2. document.write()でページ内容を追加したいのですが…
A2. 一度表示完了後にwriteするとページ内容が消去されます。DOM等別手段を。
Q3. table内容のinnerHTMLやDOMでの変更がうまく行かないのですが…
A3. IEではtable/tbody/trのinnerHTML書き換え不可です。DOMを使いますが、
  DOMの場合tableの直下にはtbody要素が(作らなくても)あることに注意。
Q4. フォーム部品名を変数にした「...myform.変数名.value」が動きません…
A4. 「document.forms.myform.elements[変数名].value」でどぞ。
  JavaScriptでは一般に「obj.x」と「obj['x']」は同じ意味です。
  グローバル変数はwindowのプロパティなので「x」と「window['x']」も。
Q5. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが…
A5. 取得には document.defaultView.getComputedStyle() を使う必要あり。
  IEでは要素オブジェクトのプロパティcurrentStyleを使う。
Q6. setAttribute("class","foo")、setAttribute("onclick","bar()")が動きません…
A6. IEではそれは不可。「obj.className="foo"」「obj.onclick=bar」でどぞ。
Q7. タイマーやイベントハンドラに設定するコードにthisを含めたいのですが
  「"...this..."」とか「function(){...this...}」ではうまく行きません。
A7. 実行時にthisが別のものを指してしまってる。以下のようにthisを束縛保存。
  「function(x){return function(){...x...};}(this)」
Q8. input type="file"の値を設定(参照)できないのですが…
A8. セキュリティ制約のため設定は絶対に不可。参照はブラウザにより不可。
Q9. getElementById('ID名')や$('ID名')で要素が取れないのですが…
A9. コード実行時点でHTMLがそこまで読まれてない。window.onload 中でやるとか。

4 :
■各種仕様 ( http://fiddle.jshell.net/vSqKr/33/show/#Link も参照 )
Standard ECMA-262
http://www.ecma-international.org/publications/standards/Ecma-262.htm
ECMAScript 3
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/ (和訳)
ECMAScript 5.1
http://es5.github.com/
ECMAScript 5 compatibility table
http://kangax.github.com/es5-compat-table/
HTML Standard (HTML5)
http://www.whatwg.org/html5
http://www.w3.org/TR/html5/
W3C Document Object Model
http://www.w3.org/DOM/DOMTR
http://www.w3.org/TR/dom/
Element Traversal Specification
http://www.w3.org/TR/ElementTraversal/
JavaScript 1.5 ガイド / リファレンス (Netscape/Mozilla)
https://developer.mozilla.org/ja/JavaScript/Guide
https://developer.mozilla.org/ja/JavaScript/Reference
JavaScript Garden (ja)
http://bonsaiden.github.com/JavaScript-Garden/ja/
JSON (JavaScript Object Notation)
http://www.json.org/json-ja.html
Gecko DOM Reference
https://developer.mozilla.org/ja/Gecko_DOM_Reference (和訳)
http://devedge-temp.mozilla.org/central/javascript/index_en.html
MSDN Library JScript
http://msdn.microsoft.com/ja-jp/library/cc427807.aspx
http://msdn.microsoft.com/ja-jp/library/hbxc2t98.aspx
http://msdn.microsoft.com/en-us/ie/ff468705.aspx

5 :
(・A・)アルヨ!
WSH(・∀・)スレッド! Part 5
http://toro.2ch.net/test/read.cgi/tech/1350201791/1-100

6 :
あれれ、失礼しました。探したんだけど急いでたもので、、、

7 :
1乙

8 :
1乙
素人なので申し訳ないのですが、
livedoorの2chのまとめブログのように、
最新記事の横に画像表示するにはどうしたら
よいでしょうか?
自分のブログはfc2ブログです。
CSSで調整できるとたすかります。

9 :
ブログやってる奴はまずhtmlからやってこい
Javscriptも入門で、htmlは中学生が1日で扱えるようになる程度だが
ブログはそれ以前

10 :
1日で扱えるっつっても、それが業務レベルで即戦力になるかどうかは別。

11 :
1乙
11ゲットロボ(ry

12 :
ありがとうございます!
出来ました!

13 :
つまりブログやってる奴の知識とかそういうのは
中学生の一日に劣るって事だろ
<html></html>の部分だけで超える事ができるが

14 :
ブログって一番上まで戻るスクリプト配布されてから設置してる奴多いけど
要素の位置の取得とか、戻る前の位置を変数に格納する事が出来なくて上に戻るだけになってるのは笑える

15 :
HTMLを1日で覚えた中学生にページ作らせてもWeb黎明期の簡素でレガシーなんができるだけ

16 :
学校でパソコン使ってる時無限アラートでハッカーを自称してた思い出

17 :
ここもゆとりが多くなったなぁ
平成生まれも今じゃ社会人か・・・
口だけは達者でまったく役に立たない事を自覚しておけ

18 :
俺ゆとりだけどブロガーはカスだと思ってます

19 :
言われたことだけやる平成生まれの性格は
デジタルドカタに最適。
反骨心がなければ、ただの害獣ではなく
歯車の1つにはなるだろう。
へたに主体性を持っても反骨心しか出ないよ

20 :
>>19
40代の俺が言う
ゆとりは自由にやらせればプログラミングで遊ぶ
俺の世代は遊べと言われても遊ばない
若さ故かもしれないが、これからの柔軟な発想が必要な時代には適してる

21 :
プログラミングってパズルぽい楽しさがあると思うけどね。
割といい遊びでもあるんじゃない?

22 :
っていうかいつの時代でも
・趣味でプログラミングやってる奴
・大学で学んで就職してから本格的にやる奴
この二通りだ
趣味でやってる奴は知識がクソ深いし、HTML5が出てきた時も真っ先に飛びついて色々調べる
んだけど就職してからプログラミング必死に学んだ奴は何があってもそんな事はしないで仕事に必要な事しか身につけない
一生データベースに触れる事も無いだろう
富士通だろうが東芝だろうが福島原発だろうが後者の奴は後者のまま
師曰く「之を知る者は之を好くものに如かず、之を好くものは之を楽しむものに如かず」

23 :
エロの為。これが全て。

24 :
>>23
そういや、友人Kは児童ポルノを収集するためにjavascriptとphpで
画面遷移しない児ポ画像掲示板作ってたな
いつの間にかオレよりjavascriptとphpが詳しくなってしまった友人Kだった

25 :
脱衣麻雀の為に麻雀のルールとか勝ち方めっちゃ学んでた奴居たな

26 :
まだ動画とかなかった頃
効率良くエロ画像を収集するためのプログラムを沢山作ったなー
もはや手段が目的を凌駕していたと思う

27 :
個人サイトでbmp上げたらキレられ
javascriptもあったらキレられた思い出
たった10年で良い時代になったもんだな
あと10年経過したらネットはリアルタイム的なものになると予想してる
node.jsみたいな

28 :
次の目標は嫁ロボ。

29 :
>>28
これだから平成は。。。
せいぜいArduinoのシールド合体させて頑張りなよw

30 :
うん、がんばるよ(Born in '76)

31 :
76年ならPIC16f84が使い慣れているか

32 :
昭和最後の63年生まれのゆとり世代のオレ登場
当時小学1年でwin95が初めて触ったパソコンだった。
95の時代ってJavascriptって当時なかったよな?
ほとんど覚えてないけど。

33 :
>>31
(・_・;)ナニソレ!?
PC88 とベーマガの思い出しかないわ。

34 :
思い出話はもういいよ

35 :
javascript勉強しはじめた小4のときはまだajaxとか登場してなくて
フォームの入力チェックと装飾くらいにしか使われていない時代だったから
いまだに今風のjavascriptの使い方に馴染めない
例えば配列をnew Array()じゃなくて[]で表現しちゃうとことか
無名関数を多用することとか
jqueryとか

36 :
ベーマガスレで当時好きだったゲームのことを語ったら、
数ヵ月後に作者が現れたのは嬉しかったな

37 :
ベーマガって懐かしいな
そんなスレがあるなんて知らなかった
もしかしてI/Oスレとかもあったのかな

38 :
>>35
同じだわ。何か取り残された感じだけど、困っていないのが現状。
Perlとかはモジュールバリバリ使っているんだけど、なんかJavaScriptは自分でゴリゴリ書いてしまう。

39 :
配列の長さが決まってる場合は、[] よりも new Array() の方が有効なんじゃない?

40 :
http://gridster.net/
これいじってる人いますか?
これでタイルの位置とかサイズはhttp://gridster.net/#serialize_methodで保存できるんだけど、
タイル上(<li>タグの間)の画像やテキストを保存するにはどうしたらいいんですかね?

41 :
>>39
何がどう有効なのか教えて

42 :
>>41
長さが決まってれば、引数にその長さが適応できるから、たとえば
var tmp = new Array(5);
for (var i = 0; i < 5; i++) {
 tmp[i] = "hoge";
}
みたいにすれば、push を使わなくても配列に値を代入できるから
パフォーマンスが上がるかなと…。

43 :
そうですね()

44 :
これは為になった

45 :
えっ

46 :
2レスしか持たなかったか

47 :
決まってるからってnew Array使ってたら統一性がないだろ
var arr = []; arr.length = 5; でおk

48 :
作成だけならnew Arrayより[]の方が速い
あと、a[a.length] = value; より a.push(value); の方が速い
ただ、配列の長さが決まってるなら >>42 も正しい。
http://jsperf.com/d-y-y-fs-fdsdsfdsfdsf
http://jsperf.com/array-literal-vs-new-array

49 :
おかしいなあ、洩れの使ってるブラウザがおかしいの?
<!DOCTYPE html><html><head><title>???</title><body>
<pre><script type="text/javascript">
var t0 = new Date().getTime();
for(var i = 0; i < 1000; ++i) {
var a = new Array(10000);
for(var j = 0; j < 10000; ++j) { a[j] = j; }
}
var t1 = new Date().getTime();
for(var i = 0; i < 1000; ++i) {
var a = [];
for(var j = 0; j < 10000; ++j) { a.push(j); }
}
var t2 = new Date().getTime();
for(var i = 0; i < 1000; ++i) {
var a = [];
for(var j = 0; j < 10000; ++j) { a[a.length] = j; }
}
var t3 = new Date().getTime();
document.writeln((t1-t0) + ", " + (t2-t1) + ", " + (t3-t2));
</script></pre></body></html>

50 :
結果は「229, 508, 308」ですた。

51 :
>>49
ローカルスコープで試したら結果か変わると思う
スコープが深い程顕著に差が出るはず

52 :
function test() {
var t0 = new Date().getTime();
for(var i = 0; i < 1000; ++i) {
var a = new Array(10000);
for(var j = 0; j < 10000; ++j) { a[j] = j; }
}
var t1 = new Date().getTime();
for(var i = 0; i < 1000; ++i) {
var a = [];
for(var j = 0; j < 10000; ++j) { a.push(j); }
}
var t2 = new Date().getTime();
for(var i = 0; i < 1000; ++i) {
var a = [];
for(var j = 0; j < 10000; ++j) { a[a.length] = j; }
}
var t3 = new Date().getTime();
document.writeln((t1-t0) + ", " + (t2-t1) + ", " + (t3-t2));
}
test();
としたけど 221、514、316 ですた。どれくらい深いスコープに
したら変わるというご主張?

53 :
Opera さんは a[a.length] = v の方が速い。
http://dev.opera.com/articles/view/efficient-javascript/?page=2#primitiveoperator
Perl さんは push の方が速い。

54 :
>>52
2 x 2.26GHz Quad Xeon
MacOSX10.6
Firefoxで
466, 769, 555
Safariで
286, 471, 369
Chromeで
40, 72, 130

Chrome速え…で、Chromeだけ
a[a.length] = j が push(j) より遅いですな

55 :
>>52
Core 2 Duo 3GHz Vista
Firefox16: 117, 100, 125
IE9: 46, 144, 167
Safari5: 90, 394, 148
そろそろ買い替え時か

56 :
>>55

57 :
>>55
FirefoxとIE9で
3つ目がもっとも遅いのが興味深いですな

58 :
結局配列はnew Array()が最速なのか?

59 :
これの場合何が最速なんてブラウザによって変わるんで、気にしない。
読みやすさを優先するのが吉だと思う。

60 :
a.push(42); // 正解
a[a.length] = 42; // ← 筋が悪い。何やらせてもトロ臭い駄目なタイプ

61 :
その程度の速さは0.000000001秒ぐらいだから気にすんな
正規表現もRegEXP使った方が早い早いってリファレンスでも言われてたけど
速度全く変わり無かったし、そんなもん

62 :
>>60
前者の方が一目で解るし綺麗だからな
単にpush知らないだけかもしれんが

63 :
>>58
だねえ。ちょっと驚いた。ArrayもObjectなので変わらないかと思っていたよ。
長さ指定で生成すると、その範囲内に高速アクセスするメモリが確保されるってことかなあ。
実装次第だろうけど。

64 :
まあ、色んな配列やり方試して少しでもパフォーマンス上げるのはいいけど、
ブラウザによっても違うだろうし、それほど変わらないから、
それだったら jQuery 使わないやり方を覚えた方が速さを実感できる。

65 :
AAA アメリカ → OK
AAA アメリカ → NG
半角スペースでsplitしてそのここの要素が半角英数字であるかの判定をしたんですけど
正規表現でやるしかないですか?

66 :
>>65
1文字目だけ見れば残りは見なくても判断できるのだったら、1文字目
だけ取り出して大小比較でもいいかも。でも正規表現の方が結局素直な
気もする。

67 :
>>66
さんきゅう
正規表現を使います。

68 :
以前俺はUTF-8の文字列の容量を調べるので
URIエンコード使ったがそれは関係なさそうだ

69 :
Javasriptって如何にグローバル変数を使わずにコーティングするか
を考えるゲーム感覚で組んでるけど、違う?

70 :
/^[a-zA-Z]+$/でいいんじゃない
「しかないか」と言われると他のやり方もなくはないけど

71 :
ああ、リロードしてなかったすみません…

>>69
あまり多く使われると、コードの見通しは悪くなるわなー
先週末似たようなことを愚痴ったけど、無数のグロ変数を
あちこちの関数から参照されると訳わからんくなる

72 :
グローバル変数は名前解決に時間がかかるからその分遅くなるしな

73 :
ほー
やっぱり、スコープチェーンを1個ずつ辿っていくから遅いんですかね?

74 :
>>69
塗装か被覆みたいじゃないか。

75 :
よく気づいたな。バグ取り得意なほうか?

76 :
計ってみました。「451,322」「451,323」「451,319」で、1.5倍は違わない
ようでした。自分の手元の環境では。
<!DOCTYPE html><html><head><title>???</title><body>
<pre><script type="text/javascript">
var x;
function test(n) {
if(n > 0) { test(n-1); return; }
var y; x = y = 0;
var t0 = new Date().getTime();
for(var i = 0; i < 100000000; ++i) { ++x; }
var t1 = new Date().getTime();
for(var i = 0; i < 100000000; ++i) { ++y; }
var t2 = new Date().getTime();
document.writeln((t1-t0) + ", " + (t2-t1));
}
test(0); test(100); test(500);
</script></pre></body></html>

77 :
PC環境やブラウザによってぜんぜん違うんだからそれを書かなきゃ意味がない

78 :
Mac OS X 10.6.4 2.53GHz Core Duo 2
Safari 5.01
でもどの環境/ブラウザでも「相対的な違いは」そんなもんじゃないですかね?

79 :
今時ページなんか作らないでconsoleでやれよ。それと、こんなもん繰り返しの数でその差は
開くんだし、そもそも参照じゃなくてインクリメント主体じゃねえか。そんな調査で
何倍だとか言われてもな。まあ、ブラウザによって実装は異なるんだしバージョンが上がれば
最適化で結果も変わるだろうし、決定的な差が無い限りこの手の調査は無意味だな。全くの無駄。

80 :
何も計らないよりはましでしょ。参照がよければ参照に直して計れば
いいんだし。計ってみましたが。
var x;
function test(n) {
if(n > 0) { test(n-1); return; }
var z, y; x = y = 0;
var t0 = new Date().getTime();
for(var i = 0; i < 100000000; ++i) { z = x; }
var t1 = new Date().getTime();
for(var i = 0; i < 100000000; ++i) { z = y; }
var t2 = new Date().getTime();
document.writeln((t1-t0) + ", " + (t2-t1));
}
test(0); test(100); test(500);
279, 283 284, 289 285, 284
つまり参照だけにしたら「ほとんど差はない」という結果になりました。

81 :
参照なら x; y; だけでいいんだよ。でもこんなものは最適化で削ってしまうブラウザもあるかもしれんし、
毛曲は誤差の範囲なんだから実測値に意味は無い。というか、そのコードでも焦点は基本型のコピーだと思うがね。
こういうケースではよくあるだろ?論理的にはAのほうが速いとかいうやつ。それでいいんだよ。実測値を
持ってきたところで実装に依存する部分が多いし(参照なんて頻繁に最適化の対象にされるから)、
ECMAの仕様に純粋に依るなら 論理的には というワードを用いるしか無い。

82 :
それと補足しておくと、ローカルとグルーバル、変数名の解決を実測したいなら
もっと変数を増やすとか、チェーンを連ねるとか、もう少し環境を考えるべきだぞ。そのコードだと
ローカル側は数えるほどしか変数がないじゃないか。

83 :
最適化で削られているかどうかは、次のようなコードで試せば
分かるわけで。同環境で確かに時間は増えていますね。
<!DOCTYPE html><html><head><title>???</title><body>
<pre><script type="text/javascript">
var x;
function test(n) {
if(n > 0) { test(n-1); return; }
var z, y; x = y = 0;
var t0 = new Date().getTime();
for(var i = 0; i < 100000000; ++i) { z = x; z = x; }
var t1 = new Date().getTime();
for(var i = 0; i < 100000000; ++i) { z = y; z = y; }
var t2 = new Date().getTime();
document.writeln((t1-t0) + ", " + (t2-t1));
}
test(0); test(100); test(500);
</script></pre></body></html>
365, 396 362, 401 362, 397
ちなみに最初の数字は1段の呼び出し、その後は100レベル、500レベルの
呼び出しの中で計測していますが、値はほとんど変わらんようですね。
チェーンを重ねるというのは何をしろというご指摘なのか伺わせて
いただけますか。

84 :
まだ計測するかw維持になってるのか!?あなたのいうレベルごとの呼び出しも
まったく意味のないことだよ。値がなぜ変わらないのか、それはスコープチェーンが一緒だからだよ。
変数名の解決とかで調べたらいいんじゃね。今回のテストは目的といい存在価値といい、悪いけど無駄だよ。

85 :
入れ子スコープの変数を作ると違うのかと思いやってみました。
404, 323, 322 と、入れ子スコープの変数でも速度は違っていませんね。
もう少し考えてみます。
var g1 = 1, g2 = 2;
function test() {
var a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q;
var z, l11 = 1, l12 = 2;
if(1) {
var a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q;
var l21 = 3, l22 = 4;
var t0 = new Date().getTime();
for(var i = 0; i < 100000000; ++i) { z = g1; z = g2; }
var t1 = new Date().getTime();
for(var i = 0; i < 100000000; ++i) { z = l11; z = l12; }
var t2 = new Date().getTime();
for(var i = 0; i < 100000000; ++i) { z = l21; z = l22; }
var t3 = new Date().getTime();
document.writeln((t1-t0) + ", " + (t2-t1) + ", ", (t3-t2));
}
}
test();

86 :
ifステートメントで入れ子w

87 :
ましにはなったけど、残念ながらJSのスコープは関数単位だぞ。IFを関数に置き換えればいい。
その関数を何十にも重ねてやればそれだけチェーンが増えるということ。二重程度じゃテスト環境
としては不十分だな。それと変数名は eval を使って動的に大量に作らせたらいい。手動だと
読みにくいし書きにくいし最悪だぞ。

88 :
アドバイスありがとうございます、evalですかなるほど。やってみました。
var g1 = 1, g2 = 2;
function test100() {
var l1 = 1, l2 = 2;
var t0 = new Date().getTime();
for(var i = 0; i < 100000000; ++i) { z = g1; z = g2; }
var t1 = new Date().getTime();
for(var i = 0; i < 100000000; ++i) { z = l1; z = l2; }
var t2 = new Date().getTime();
document.writeln((t1-t0) + ", " + (t2-t1));
}
var d = "var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;";
for(var i = 0; i < 100; ++i) {
eval("function test"+i+"() { "+d+"test"+(i+1)+"(); }");
}
test100(); test0();
でもどっちも「675, 555」「675, 559」と同じです。何が足りないんでしょ?

89 :
意味不明なJavascriptの挙動に出くわした
function sapporo(){
var number=0;
var red=$("input");
for(var i=0;i<$("input").length;i++){
var name="i_"+i;
if( red[i].id===name){
number++;
}
}
return number;
}
inputタグのの中でid="i_0"〜"i_4"の数を数える関数なのですが、
formのid="i_0"〜"i_4"付きのinputタグの他に
<form method="POST" action="test.cgi">
名前: <input type="text" name="NAME"><br>
住所: <input type="text" name="ADDR"><br>
<input type="submit" value="送信">
</form>

と記述すると
red[i].id===nameが正常に動かなくなりました。
formが2つ同じページあると挙動がおかしいのでしょうか?

90 :
いちいち自前でテスト作らなくても、jsperfから探してきて、
そこで計測したほうがよっぽどましなテストが出来るよ
グローバルとローカル変数の違いだったら例えば以下とか。
http://jsperf.com/global-versus-local

91 :
どっちも同じ結果になるのは、自分が書いた内容を理解していれば明らか。
なんたって、時間を計測して表示するのは test100 だけなんだから、
どっちも test100() の単一呼び出しの結果の数値だからなwww

92 :
ああ、ようやく理解しました。つまり、ある関数(クロージャ)内から
外側環境の変数をアクセスしろっていうこと? でもそうすると、今の
ローカル変数より遅くなるだろうから、「グローバル変数の方が速い」
という結論になりそうじゃないですか?

93 :
やってみました。やっぱ local < global < 中間ですね。
528, 728, 674, 398 となりました。まだ勘違いあったら教えてくださいませ。
var z, g1 = 1, g2 = 2;
function test() {
var o1 = 1, o2 = 2;
var f = function() {
var m1 = 1, m2 = 2;
return function() {
var l1 = 1, l2 = 2;
var t0 = new Date().getTime();
for(var i = 0; i < 100000000; ++i) { z = g1; z = g2; }
var t1 = new Date().getTime();
for(var i = 0; i < 100000000; ++i) { z = o1; z = o2; }
var t2 = new Date().getTime();
for(var i = 0; i < 100000000; ++i) { z = m1; z = m2; }
var t3 = new Date().getTime();
for(var i = 0; i < 100000000; ++i) { z = l1; z = l2; }
var t4 = new Date().getTime();
document.writeln((t1-t0) + ", " + (t2-t1), ", " +
(t3-t2) + ", " + (t4-t3));
};
};
return f();
}
test()();

94 :
tvrockの自動検索予約リストの「予約数」の列を「タイトル・詳細」の左隣に移動させたいのです
単純に羅列したのは動いたのですがfor文で回すにはどうしたいいんでしょうか?
下のやつだと動作しません
var rec1 = document.evaluate('/html/body/table/tbody/tr[2]/td/table[2]/tbody/tr/td[8]', document, null, 7, null);

var rec100 = document.evaluate('/html/body/table/tbody/tr[2]/td/table[2]/tbody/tr[100]/td[8]', document, null, 7, null);
rec1.snapshotItem(0).parentNode.insertBefore(rec1.snapshotItem(0), rec1.snapshotItem(0).parentNode.lastChild);

rec100.snapshotItem(0).parentNode.insertBefore(rec100.snapshotItem(0),rec100.snapshotItem(0).parentNode.lastChild);

var rec= document.evaluate('/html/body/table/tbody/tr[2]/td/table[2]/tbody/descendant::tr/td[8]', document, null, 7, null);
for (var i=0; i<rec.snapshotLength; i++){
rec[i].snapshotItem(0).parentNode.insertBefore(rec[i].snapshotItem(0),rec[i].snapshotItem(0).parentNode.lastChild);
}

95 :
jQueryUIのDialogを使って変な事象に出くわしました。
<body>

96 :
jQueryUIのDialogを使って変な事象に出くわしました。
formの中のdivをDialog機能で表示しようとしたのですが、
form部分の下にしか表示されません。
例では省略してますが、実際かなりform部分は記載が多く、
全然想定したところ(真ん中)に出てくれず縦長なformの下に出てしまいます。
formの中に出したいのですが、
ネットで調べてもjQueryUIのダイアログがformの下に出るという事象は見つけましたが、
これと言った解決策は見つけきれてません。
何か対応策ありますでしょうか、それとも別のプラグイン使うかな…。
>>95は自分です。書いてる途中でボタン押しちゃいました。すいません。
<html>
<head>
<script>
$(function(){
$("dialogtest").dialog();
});
</script>
</head>
<body>
<form action="AA">

<div id="dialogtest">TESTDIALOG</div>

</form>
</body>
</html>

97 :
>>96の追加
環境はWindows7のIE8です。
IE7でも同じです。FireFoxはまだ試してませんが。
ただIEで動かないと仕事先の事情でどうしようもないのです。
連投すいません。以上、よろしくお願いします。

98 :
<form>がposition:staticじゃないとか
いや、詳しいことは知らんのだが

99 :
>>96
やまかんだけど、 <form>...</form>のすぐ外側を<div>...</div>で囲んでみるとか?

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
【ラクできず】楽天RMS【儲からないシステム】 (351)
ページランクが付くまでマターリするスレ13 (701)
HP作成ソフトについて語って (310)
【SEO】みんなで1位獲得【業者は見ないで】 (231)
恐くて見れない画像解説スレinWEB制作板 (471)
お前ら、HTML作成で心がけていること教えてください (609)
--log9.info------------------
懐かしの東武鉄道について語ろうパート4 (238)
野ざらしの廃車&廃バス&廃ホテル (443)
鉄道一人旅のときに聞いた曲 (229)
国鉄分割民営化は失敗だった Y (217)
≡≡≡懐かしの京浜急行 3号ダイヤ≡≡≡ (684)
【なりきり】現在、1977年(昭和52年)【スレッド】 (305)
【EF58】いなば号&紀伊号【DF50】 (330)
【金星 きそ】名古屋発の夜行列車【のりくら 紀州】 (209)
長距離・夜行各駅停車 (484)
【製造両数】151系車両 3号車【151両】 (790)
なつかしの小田急線 5 (507)
【大阪】特急白鳥の思い出【青森】 (558)
【日方】おもいでの野上電気鉄道【登山口】 (769)
ここだけ20年前のスレ〔鉄道懐かし板〕 (411)
【仁丹】ホーロー看板を見た【トーア毛糸】 (365)
【酷使】痛み激しかった車両【塩害】 (320)
--log55.com------------------
【PSO2】ファンタシースターオンライン2ベンチ 1【ノート用】
【後継WSVGA】HP Mini Note 19台目【2133オワタ?】
SONY VAIO Giga Pocket Digital★1
ThinkPad Zシリーズ part5
【lenovo】レノボノートPCハッキング用工作対策スレ
HP Compaq nw8240
【24インチ】vaio type L 1 【すぐつくTV】
■ソニー、VAIOが苦戦。売り上げ台数は未達続き