+ JavaScript の質問用スレッド vol.96 +
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/
■主要FAQ (全部は
http://fiddle.jshell.net/vSqKr/30/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 中でやるとか。
配列が二つあるんですが、その片方にしか入っていない値を求めるにはどうすればいいですか? たとえば、A=1,2,3 B=2,3,4 だとすると、結果は1,4になります。
>>5 var a = [1,2,3];
var b = [2,3,4];
var c = [];
var f = 0;
for (var i=0; i<a.length; i++) {
for (var k=0; k<b.length; k++) {
if (a[i] == b[k]) {
c[f++] = a[i];
break;
}
}
}
var A1 = new Object(), B1 = new Object(), C = []; for(var i = 0; i < A.length; ++i) A1[A[i]] = true; for(var i = 0; i < B.length; ++i) B1[B[i]] = true; for(var i = 0; i < A.length; ++i) if(!B1[A[i]]) C.push(A[i]); for(var i = 0; i < B.length; ++i) if(!A1[B[i]]) C.push(B[i]); うーん長いね。でもこれくらいしか思いつかない。 数値に限られるのならsort()して端から見るとかかな。
>>8 そのコードでも数値とか基本型に限定されると思う
>>7 全然違うんじゃないの? それだとAとBで共通のをCに入れてるよね?
var a = [1,2,3]; var b = [2,3,4]; var c = []; var f = 0; for (var i=0; i<a.length; i++) { for (var k=0; k<b.length; k++) { if (a[i] != b[k]) { c[f++] = a[i]; break; } } }
>>9 そうでした。つかその前提を明確にしてくれないと書けないよね。
>>11 あのさあ、自分とこで実行して確認してから回答しようよ。あんまりだ。
もし配列AもBも昇順に整列されている数値だということなら以下で。 <!DOCTYPE html> <html><head><title>???</title> </head><body> <script type="text/javascript"> var a = [1,2,3], b = [2,3,4], c = [], ap = 0, bp = 0; while(ap < a.length || bp < b.length) { if(ap >= a.length) { c.push(b[bp++]); } else if(bp >= b.length) { c.push(a[ap++]); } else if(a[ap] == b[bp]) { ++ap; ++bp; } else if(a[ap] < b[bp]) { c.push(a[ap++]); } else { c.push(b[bp++]); } } document.writeln(c.join(" ")); </script> </body></html>
18 :
5 :2012/01/17(火) 17:47:30.10 ID:???
>>17 オブジェクトにも対応できるようにしてほしいです。たとえば、[{}, Array]と[{}, Array]では[{}, {}]になります。
19 :
5 :2012/01/17(火) 17:50:19.69 ID:???
追記です。↑の結果の{}はそれぞれ入力の配列内のオブジェクトを指しています。
>>18 そりゃもう、しらみつぶしにやるしかないでしょ。そろそろ自分で書いたら?
宿題厨うぜえな
Objectの比較って面倒だぞ。{} == {} で判断できるわけではないから var a = { x: 1, y: 1... }, b = { x: 1, y: 2... }; a.x == b.x a.y == b.y ... と、調べていくしかない
23 :
5 :2012/01/17(火) 18:00:10.60 ID:???
>>22 この手の実装では === で比較するのが慣例ですね。内部の状態を見るんじゃなくて、
ただ参照が一致するかどうか、これがオブジェクト比較の原則です。
配列の中身をtoJSONして比較したらいいんじゃないかね
あ
28 :
5 :2012/01/17(火) 18:08:53.16 ID:???
>>24 jsonに流し込むと、全てのオブジェクトが基本型に変換されます。
これでどう? var AB=A.concat(B); F:for(var ab=AB.length-1;ab>=0;ab--){ var ABab=AB[ab]; for(var a=A.length-1;a>=0;a--){ if(ABab===A[a]){AB.splice(ab,1);continue F;}} for(var b=B.length-1;b>=0;b--){ if(ABab===B[b]){AB.splice(ab,1);continue F;}} }
確認してないけどこんな感じで function 二配列非重複要素取出君(A,B){ var AB=A.concat(B); F:for(var ab=AB.length-1;ab>=0;ab--){ var ABab=AB[ab]; for(var a=A.length-1;a>=0;a--){ if(ABab===A[a]){AB.splice(ab,1);continue F;}} for(var b=B.length-1;b>=0;b--){ if(ABab===B[b]){AB.splice(ab,1);continue F;}} } return AB; }
32 :
5 :2012/01/17(火) 18:25:51.81 ID:???
>>30 >>18 のケースで動作しないですね。今回は自己解決しました。
速度面を考慮するともう少し複雑になるでしょうね。ありがとうございました。
var diff = function(arrayA, arrayB) {
var result = [];
var array = arrayA.concat(arrayB);
for (var i = 0; i < array.length; i++) {
var value = array[i];
var index = array.indexOf(value);
if (array.indexOf(value, index+1) === -1) {
result.push(value);
}
}
return result;
};
すいませんChromで利用できるコンソールのconsole.logとかそういうのありますよね これ以外にもどういうのが使えるのか知りたいのですが公式ドキュメントのどこに載ってますか?
>>32 なにこれ
超レアケースでしか機能しないんだけど
>>32 indexOfって。。。まあ解決したんならいいけど
あるブラウザでArray.prototype.someが対応しているか調べたいのですが if (Array.prototype.some) { } else { } これよりもっとベストな書き方を教えてください
'some' in []
39 :
5 :2012/01/17(火) 18:39:29.50 ID:???
>>34 明日には実働アプリに投入するので、反例コードもらえると助かります。
>>32 これでどうかな
function 重複抜出(){
var RA=Array.apply(null,A);
var RB=Array.apply(null,B);
Fa:for(var r=RA.length-1;r>=0;r--){
var RAr=RA[r];
for(var b=B.length-1;b>=0;b--){
if(RAr===B[b]){RA.splice(r,1);continue Fa;}}
}
Fb:for(var r=RB.length-1;r>=0;r--){
var RBr=RB[r];
for(var a=A.length-1;a>=0;a--){
if(RBr===A[a]){RB.splice(r,1);continue Fb;}}
}
;
return RA.concat(RB);
}
41 :
5 :2012/01/17(火) 18:46:41.92 ID:???
>>40 OKですね。こちらで用意してあるテストコードはクリアしましたよ。
>>32 動かないコード貼って何がしたいの?
TypeError : indexOf is not a function.
Array.prototype.indexOf //undefined
addEventListenerってchromeのhtml5のプラグイン入れてればIE6以上でも使えますよね?
>>44 知らんかったからググったけど「Chrome Frame」ってやつか
GoogleさんがIE6の面倒見てるなんて、ちょっと面白いな
>>43 なら置き換えたコードだせよ
動かんからおかしさを指摘しようがないだろ
Property access on stringsしかYESにならんブラウザも沢山あるんだぞ
>>41 一方の配列に重複する要素があったらおかしくないけ?
>47 お前>5読んだ上でそれ言ってるんだよね?w
50 :
5 :2012/01/17(火) 19:18:13.84 ID:MgACjSba
>>47 どちらのコードでしょうか。共にクリアしているテストコードの一部を抜粋してみます。
diff([2,2,1,3], [2,1,1,3]); // [] 以下同じく
diff([1,1], [2,2]);
diff([1,1], [1,1]);
どこにも片方に重複要素はないとは書いてないな
まあ、もう
>>5 には関わらない方向でよろしく
52 :
40 :2012/01/17(火) 19:22:05.68 ID:???
え、ちゃんと動かないケースある?
>>5 の表現の仕方だと、
A = [1, 2, 3, 1];
B = [2, 3, 4];
の場合、結果は
[1, 1, 4] (または [1, 4]) だろ。
>>32 のコードだと [4] になるんだが。
>>52 違う、
>>32 の方。
54 :
5 :2012/01/17(火) 19:25:25.65 ID:???
>>53 おお!本当だね、どうもありがとうございます。支給修正したいと思います。
http://urlencode.net/result.cgi ではutf8でurlエンコードでシングルコーテーション'が%27に
変換されますが、JSの関数encodeURIComponentでは
ダブルコーテーションはurlエンコードされますが、
シングルコーテーションが変換されません。
シングルコーテーションをutf8でurlエンコードするjsの
関数を教えてください。
56 :
5 :2012/01/17(火) 19:29:45.93 ID:???
修正バージョンをコミットしてきました。
>>53 さん助かりました。ではでは。
修正バージョン書け
>>55 urlエンコードの意味分かってる?
urlで認められてる文字がエンコードされるわけないじゃん
59 :
5 :2012/01/17(火) 19:32:06.88 ID:???
>>57 unique挟みましたよ。ベンチ取って大差なければこのままでいきますよ。
なんだやっぱり釣りか
>>58 シングルコーテーションはURIに使えないよ
RFC 3986 の reserved characters の箇所を読んでこい。
>>62 なんですぐ嘘つくん?
- _ . ! ~ * ' ( ) は使えるから(w
どう?言い返せるかな(w
encodeURIComponent() の動作自体は、RFC 2396 の頃の仕様に従ってんのかな。 下記の mark に該当する 9文字が encodeURIComponent() でエスケープされない文字。 > 2.3. Unreserved Characters > > Data characters that are allowed in a URI but do not have a reserved > purpose are called unreserved. These include upper and lower case > letters, decimal digits, and a limited set of punctuation marks and > symbols. > > unreserved = alphanum | mark > > mark = "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")" > > Unreserved characters can be escaped without changing the semantics > of the URI, but this should not be done unless the URI is being used > in a context that does not allow the unescaped character to appear.
なるほど
var a = 1, b = 2;ってやったとき bにもvarが適用されてますか?
確かめたらすぐわかる事をいちいち聞くな お前今日荒らし過ぎ 全部バレてるから(w
>>61 で答え出てるんだからもういいだろ。シンプルに行こうぜ。
蒸し返すなよ
>>68 for文内では適用されないけど
普通にvarで宣言の時は適用されるよ
え?
>>72 for文内で適用されないって、どういうこと?
for (var a = 1,b = 2;a < 10;a++){} これだとbはグローバルになる
77 :
Name_Not_Found :2012/01/17(火) 22:16:38.35 ID:klKO4fug
前スレの続きですみません。 <span>aa aa<span class="d">bbb</span>ccc</span> これで、class="d"からaa aaのテキストを取得するには どうしたらいいのでしょうか。たとえばjqueryで $(".d").parent().text(); だとaa aacccになって しまうのです。 で、用途は、たとえばgetSelection()で bbを選んだときにaa aabbを取得したいのです。
>>76 高速化でよくfor内でvar a = 0, b = ary.lengthをやってたんですが納得しました
>>76 それをトップレベルに書いてるなら当然 a も b もグローバルだけど、
宣言自体は b にも適用されてるでしょ。
納得すんのかよ
>>83 過去レスにもあったし実際その時試した時はグローバルなったぞ
>>84 ブラウザとバージョンと再現するソースは?
>>85 覚えてたらだしてるわ
2,30スレぐら前じゃないかな多分
何となくそんな話を聞いた気がしないでもないけど、昔のIEにバグでもあったんかね
ただの勘違いでしょ。 bだけグローバルになるなんてことはないよ
今スレもテンプレとevalの議論で埋めましょう! みなさん気合い入れていきますよっ!
93 :
90 :2012/01/18(水) 00:22:04.07 ID:???
あ、ちがう、コンマ演算子なのは i++, j-- こっちのほうか。>MDNのページ 失敬。
>>89 Javascriptの本って最近発売したやつでも、evalを使ったプログラム
を載っけたりしてるし、このスレでもevalを使った質問が頻繁にある。
evalのまとめwikiとかできてもいいかもしれん。
evalを使ってる大抵の人がやってるドット記法は添字記法で書き換え可能
ってことを書いてあるwebサイトも少ないし。
var str = "入力値"; if(/^\s*$/.test(str)) { // 空白のみ }else { // それ以外 }
>>97 ありがとう御座います。
正規表現使えるんですね。
>>96 のプログラムよく考えたらバグありますね、すみません
alert("𠮷".length) この文字は何文字ですか
>>97 ホワイトスペースに全角空白って含まれるんだっけ…と調べてみたら
FireFox/Chrome/operaは含まれるんだね。
IE8では含まれてなかった。
>>99 どうしてこんな質問がくるの?
自分で試せばいいじゃないか
>>100 Unicode的には全角半角の区別自体が無い(実体を何バイトで表現するか?ってだけ)から
いわゆる全角スペースも空白のグループに入るのが正しい実装
>>99 1文字、javascriptのlengthはUTF-16の16ビットの符号単位の個数を返す
2だろバカ
このスレに居る人って割りとプログラム書いてる人だと思うんですけど それでもprototype.jsじゃなくてjQuery使ってる人多いんですよね? prototype.jsのほうがこのスレの人的にはとっつきやすいんじゃないですか? それでもあえてjQueryを選んでる理由を教えて下さい
jQueryだとアニメーションとかあるから?
jQuery使わないでanimationとか骨が折れるからな
まー関数でfunction(要素、動作する場所、結果、時間){} っていうのでも出来なくはないけど、とんでもなくメンドイ上 改良に改良を重ねてるjQueryの方が良い アニメーションって面白いしね
>>95 前スレであったがローカル変数の文字列による参照は
今はもうevalでしかできないっぽいぞ
収納式ドロップダウンメニューとかJSで描くだけで何十行にもなるからなぁ。
eval、evalってうぜーな 使いたかったら使えよ以上。 いつまでもピーチクパーチク言ってんなボケ
>>104 2文字分の場所を使うだけで1文字は1文字だろ
ローカル変数の文字列による参照って、、 ローカル変数ってことは自分が今編集してるファイル内の話なんだから、わざわざeval使わないで普通に書けよ… eval使うなとは言わないけど、わざわざeval使ってたらなんで?って思うのは当たり前だろ
>わざわざeval使ったら ならeval使わなくてすむコード示せよ
>>113 そんなこと言ったらオブジェクトの添字での参照も必要なくない?
配列は別だけど
>>114 お前正解
eval使わないとできねーわ。eval使っていこうぜ。
1つのものに複数の方法でアクセスするってバグが出やすいからよくないスタイルだと思う。 文字列をキーにさまざまな値にアクセスしたければハッシュ(JSではObject)使えばいい。 それをローカル変数と混ぜる必然性は無いと思うね。
だからローカル変数をオブジェクト的に扱いたいって事じゃない? 昔はarguments使ってできてたんでしょ?
116 やっと負けを認めたか(w
ローカル変数とオブジェクトを混ぜたいというその考え方がよくないスタイルだと思う。 一般的にevalを使わないとできないような設計が悪い設計。 evalを使わないとできなかったり遅かったりすることは存在するが、今日では標準的な ライブラリにラップされてるものを使えば済むこと。
〜をするにはどうしたらいいですかの質問に、〜なんかする必要はないとかいう奴は義務教育受けてきたの?
別にどーしてもローカル変数を文字列キーで取りたければeval()するんでしょね。 でもそういうコードの発想自体が糞設計だね。
>>120 『evalを使うのは悪い』の理由がわからん
evalでしかできなかったり、evalの方が速かったりするのなら
使うことは良いことじゃないのか?
矛盾してるだろ
マジで宗教か何かにしか見えんのだが
eval賛成派も宗教でしょ。 たとえば昔からevalのあるLispコミュニティではどうしてるかとか調べたことあるのかな。 必要なときは使うし必要でもないのに使うのは悪いスタイル。
evalが悪いスタイルなのは前スレにも書いたけど、実行時に渡す文字列が何であるかに よって起こることが全く違うので理解しづらいコードになるからだと思うけどね。 オレは理解してるからトラブルなんか起こさないという奴はよくいるけどね(笑)。
>>125 このケースは必要に当て嵌まるだろ
それともパーサー書けばいいとかまたトンデモ論に走るの?
>>126 このケースでどんな問題が起こる可能性があるのか解説頼む
evalはevil evalは悪魔 悪魔は禁止 evalは禁止 eval悪魔eval悪魔eval悪魔悪魔eval悪魔 eval悪魔eval悪魔悪魔eval悪魔eval 悪魔eval悪魔悪魔eval悪魔eval悪魔 eval悪魔悪魔eval悪魔eval悪魔eval悪魔悪魔 eval悪魔eval悪魔eval悪魔悪魔eval悪魔 eval悪魔eval悪魔悪魔eval悪魔eval悪魔eval悪魔悪魔eval悪魔eval悪魔 eval悪魔悪魔 eval悪魔eval悪魔eval悪魔悪魔eval悪魔eval悪魔eval悪魔悪魔eval悪魔eval悪魔eval悪魔悪魔
129 :
113 :2012/01/18(水) 08:54:44.94 ID:???
evalを使ったほうが楽なケースはあるし、メリット・デメリットを考えて使うのは別にいいんだけど
そこにevalを積極的に使う理由はないでしょ。なんで
>>116 みたいになるのかね。
宗教というか、使わないっていうポリシーでしょ
>>129 それはどう見てもネタだろ
お前の目はふし穴か(w
>128,130 ふーん、ぽりしーねぇw なるほどw!
お前ら懲りずにまた1でも0でもない0.5くらいの事を 1か0かに無理矢理決着付けるために争ってんのかよw 毎度毎度懲りない奴らだなwwwww
荒らし消えろ
>>134 とか
>>135 みたいなのが荒れるきっかけになりやすいんだけどな。
「はい、分かりました」なんてなる訳ないんだから。
数式の評価に十数行程度のパーサ書いて使うのがどうしてトンデモなの。 あのパーサが自分に読めないから悔しいとかそういうわけじゃないんだよね?
1. eval絶対禁止派 2. eval使わないこともないけど積極的には使わないよ派 3. どっちでもいいよ 4. eval使ったほうが楽に書けるときは躊躇なく使う派 5. eval積極的に使う派 1と5は論外として、4が微妙なんだよな。
>>137 JSでできたLinuxでCのパーサー動かせばevalいらないって言ってた奴のことでしょ
話の流れわからない奴は黙っててくれるかい?
6.可能な限り排除すべき派
>JSでできたLinux これ実際はCPUとかのエミュレートとかだけだったはず。 Cとかそこらはバイナリだったはずだぞ。
>>138 eval使った方が楽でパフォーマンスも良いときは使わない理由ないし
流石にそれに反対する人もいないんじゃない?
皆反対してるのはそうじゃない、もっと良い書き方ができるときや
不審なコードが実行される場合だけでしょう
>>141 Cは普通にJSLinux上でソース書いてコンパイルしてハローワードは実行できたはず
どのくらいの機能が揃ってるのかはわからないけど
┏┳┳┓ ハイ. ┏┳┳┓ ┏┫┃┃┃ 雑談は ┃┃┃┣┓ ┃┃┃┃┣┓ ここまで ┏┫┃┃┃┃ ┃ ┃┃┏━━━┓┃┃ ┃ ┃ 雑談 ┣┫ . ・∀・ ┣┫. STOP!┃ ┗━━━━┛┗┳━┳┛┗━━━━┛ ┏┻┓┃ ┏━┛ ┣┻┓ ┗━━━┫ ┗━┓ . ┗━━━┛
good partsとパターンで悪って言われてるからそれを守ってる 難しいことはわからんw
みんな誰もが初心者の頃にevalに大変お世話になっただろ それなのにその恩をあだで返すのか?
evalがなくて苦労してる言語も沢山ある中、 有り難いことにせっかくJSには強力なevalがあるんだから使わにゃ損だと思うけどなあ 俺の考え方間違ってるかなあ
だから、もういいって。 eval使え使え。evalなかったら無理だ、無理。
>>147 こういう嘘
小学生がはぶてた時よくつくよね(笑
>149 どうして使わないと無理って言い切れるのか
どうしてって、この水掛け論が終わらないからだろ
>>143 コンパイラはバイナリ。JSで書かれてる訳ではない。
コマンド類はBusyBox使ってる。
JSLinuxがやってるのはPCのエミュレート。
>>151 もうどーでもいいんだっつーの
使いたいヤツは使えばいい、使いたくなかった使わないでいいだろ
そんな結論の出ない無駄な話しして何が楽しいんだ
いくら言っても使いたいヤツは使いたいんだ放置しろハゲ
>>153 ん?
だから何よ?
JS上で動いてる事には変わりなくね?
>154 そんな当たり前の事を大声で言われても…… 今はもちろんそれを踏まえた上で使った方がいいのか、 使うならどんなときに使うべきなのかを議論してるわけ 話から君一人だけ外れてるよ?
>> 156 ここは質問スレだから 議論したいのなら本スレでやってちょうだい
>>156 何言ってんの?大声って文字見て大声?
どんな時使えばいいかって?
組むヤツが使わないと組めない時に使うに決まってんだろ
もう黙ってろハゲ
159 :
152 :2012/01/18(水) 10:00:24.53 ID:???
この状況で議論が成立してると思ってるのか…
むしろ、外れてるのは
>>156 のほうだと思うけど
>何言ってんの?大声って文字見て大声? >どんな時使えばいいかって? >組むヤツが使わないと組めない時に使うに決まってんだろ >もう黙ってろハゲ かなり酷い
>159,160 意味わからん 議論じゃないんならなんだって言うのさ そりゃあときたま荒らしは出るけどさ 大体の人は真剣に議論してるじゃんどう見ても間違いなく
今だって雑談とかじゃなくて議論してるわけでしょ?
自覚のない荒らしも悪だなw
166 :
152 :2012/01/18(水) 10:14:11.78 ID:???
>>162 「議論じゃない」じゃなくて「議論が成立してない」って書いたんだけど。「水掛け論」とも。
真面目に書いてるなら、最低限の国語力が足りてないように思える…
>>164 俺は肯定派否定派関わらずわざと凄く消極的な意見出して
議論を無理矢理潰そうとしてる人を叱ってるだけ
169 :
152 :2012/01/18(水) 10:18:02.27 ID:???
あ、ここでの最低限の国語力ってのは「テキストベースでの議論をするために必要な国語力」のことね。
>>169 そういう人をおちょくるようなことするから議論が成立しなくなるんじゃないの?
君みたいな人を荒らしって言うんだと思うけど
話が脱線しすぎ
もっと積極的で有意義な意見を出していこう
そうしたら議論も早く終わる
いつも中途半端なとこでなじりあって終わらせるから再燃するんでしょう
>>167 そうか、お前のいう「議論」の腰を折ってしまって悪かったな
でも、ここは質問スレだから。質問されて答える所だから。
そりゃ多少は出されたコードについて検証はするだろうけど議論するスレじゃないからな。
>>165 のスレで議論してくれ。
俺も、そっちのスレなら議論に混ざるから。
>>172 いやいや、勘違いしてるみたいだけど
俺は仕方ないから議論の議長役をやってるだけで
議論の中身はまるっきりどうでもいいんですよ
そっちでやろうって前々からずっと言ってるけど
何度も何度も再燃するからいっそ決着つけようって言ってるわけでしょ
どうして分かってくれないの?!
そっちでやろうじゃ済まないからここまで必死になって訴えてるわけでしょう
ここで白黒決着付けた方が肯定派にとっても否定派にとっても
議論なんでどうでもいい人達にとっても最善の結末になるでしょう
>>158 動いてる事と作ってる事は別もんだろうが。
JSでLinuxが出来てる訳ではない。
>175 『JSで動く』 ⊃ 『JSで作ってる(かつ、もちろんJSで動く)』 なんですけど 高校行きました?
もういいや、俺が結論出す evalは不必要、絶対に使う可からず evalがどうしても必要そうな実装は、清く諦める可し 意義はないね?
>>176 ○PCをJSで作ってる
×LinuxをJSで作ってる
>174-176 お前ら自分達がどれだけ低レベルな会話してるか分かってるのかな?(w
addEventListener('keydown', function(e){ 〜処理〜 }, false); こういうふうにaddEventListenerの中で無名関数を使うとメモリが開放されないようなことをどこかのMDCのaddEventListerのページの一番下の文章に書いてありました removeEventListenerを呼ばない場合の無名関数への参照を削除する方法が分かりません どのように書くのでしょうか?
>178 そりゃお前さんが思い込み過ぎてるだけや 『JSでできたLinux』 も 『JSでできたPC上でバイナリ走らせてできたLinux』 も突っ込むほど変わらなくね? そんなこと言ったら正しくは 『JSでエミュてる〜の組み合わせで実現された仮想CPU〜〜〜Linuxもどき』 になるぞ
そんなeval()で大丈夫か?
>>181 そんなん一年中動かし続けるようなアプリでないかぎり気にする必要ない
一応history.go(0)で解放
環境によってはeajax.gc()も使える
>>181 よくわからんけどイベントリスナが働いている限りは開放されないってことじゃないの?
だったら別にほっとけばいいんじゃね
>>184 スマフォで動かす場合はメモリは気になるのですよ
>>181 それが気になるなら関数を外側で定義すれば良い
var keydownHandler = function(evt){
};
(function(){
var a,b,c,d;
document.addEventListener('keydown', keydownHandler, false);
})();
これからもどんどんevalについて話題を振っていくつもりです 決してNGWORDとかに入れることがないようお願いいたします
>>184 history.go(0)はページをリロードするので解決にはなりません
>>188 質問からはずれてます。無名関数の参照を削除するのが主旨です
よくわからんけど 1つにつきせいぜい数KBとかそんな程度じゃないの? そんなん気にするんなら他にやることあるだろ
>>182 JSで動くLinuxならまだ解るけど、JSで作ったとなると意味は変わってくるがな。
JSで作ったLinuxと書くと一般的にはLinux自体をJSで作ったと思うがな。
>>191 イベントリスナの登録以外にも画像の先読みなどメモリが使われるのですよ
気にしますよ?
>>192 わけわからん
『JSで作った』とか意味のわからん言葉はお前さんが言い出したことで
俺は初めにそんな発言してないぞ?
言葉のおかしさを示すため以外に使ったこともない
>>194 元はこれだろ
>JSでできたLinux
"できた"を"動く"とでもいいたいのか
なんだバカしかいねえのか
>>196 JSで実現されたLinuxって意味だよ
気が済んだ?
199 :
188 :2012/01/18(水) 11:12:46.22 ID:???
>>190 ああ、そのMDCの記述そのものについて聞いてるのね。
本家の英語版だと無名関数の参照を削除とかいうよくわからない記述はなくなってるから参考にしないほうがいいよ
ここまで来たら両者引き下がれないなw
俺は
>>198 に10$賭ける
お前はどうする↓
トイレに行ってくる
俺は実は2人は1人でどちらも勝利に100円賭ける
とりあえず迷惑だから他でやってよ それか続けるなら名前にトリップで#evalつけてくれ まとめてあぼんするから
E.v?alがどうしたって?(w
evalアボンすると nodeValueとかも対象になるから注意
var str = "html>body>div#test>ul>(li+a)*3 これを展開して <html> <body> <div id="test"> <ul> <li><a href=""></a></li> <li><a href=""></a></li> <li><a href=""></a></li> </ul> </div> </body> </html> になるパーサの書き方を教えてください
うーん、こうやると絶対ダメだしなあ var parseHtml=str; while(eval(parseHtml))parseHtml+=parseHtml+str;
$("#test a:eq(0)") $("#test a:eq(1)") $("#test a:eq(2)") $("a", "#test").each(function() { ..... });
ブラクラ注意
そういえば前スレで 宇宙線による悪影響がeval使うと増すみたいな事言ってた奴がいたな eval否定教のやつらは皆ヤベーな(w
空気読めない奴
213 :
206 :2012/01/18(水) 11:55:42.36 ID:???
zen codingなんですけどどうやってパースしてるのか
ソース読めばええやん
function a(){} for(var i=0; i<100; i++) { setTimeout(a, 100); } これってさsetTimeoutで実行するごとにメモリ開放しないのな
JSで書かれた数式のパーザ貼っておきますね。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML//EN"> <html><head><title>???</title> <script type="text/javascript"> var s = '1+2'; function exp() { var v = term(); while(s.match(/^[+-]/)) { if(s.match(/^[+]/)) { s = s.substring(1); w = exp(); v += w; } else { s = s.substring(1); w = exp(); v -= w; } } if(s.match(/./) && !s.match(/^[)]/)) throw 'syntax'; else return v; } function term() { var v = fact(); while(s.match(/^[*/]/)) { if(s.match(/^[*]/)) { s = s.substring(1); w = term(); v *= w; } else { s = s.substring(1); w = term(); v /= w; } } if(s.match(/./) && !s.match(/^[-+)]/)) throw 'syntax'; else return v; } function fact() { if(s.match(/^[0-9]/)) { var t=s.match(/^[0-9]+/)[0]; s=s.substring(t.length); return parseInt(t); } if(s.match(/^[(]/)) { s = s.substring(1); var v = exp(); if(s.match(/^[)]/)) { s = s.substring(1); return v; } else throw 'syntax'; } }
function calc() { try { s = document.getElementById('t0').value; alert(exp()); } catch(e) { alert('syntax error, seeing:' + s); } } </script> </head><body> <div><input type="text" id="t0" value="((1+2+3)*2+19*(30*2))/2"> <button onclick="calc()">calc</button></div></body></html>
218 :
Name_Not_Found :2012/01/18(水) 13:07:22.84 ID:QyRmPjJq
>>191 ここでのメモリーリークはページを破棄してもメモリ回収されないバグだ
平気で数GB行ってたんだぞ
plain/textで出力されたページの内容を取得したいんですが document.bodyだとタグがついちゃいます 良い取得方法はありませんか?
220 :
219 :2012/01/18(水) 13:43:00.71 ID:???
つinnerText eval否定教は早くローカル変数にアクセスするより良い方法書けよ
eva|で威張るな
必死にeval話題を掘り起こそうとしてますねw
お前もな! ワハハハハハw
結局誰もeva|を使わない方がいい理由を明確に出せてない件
関数名取得したいとかと同じ欲求でしょ
>>226 お前は悪くない
親が育て方間違っただけ
関数名はarguments.calleeが使えればだいたいのケースで取得できるかも
>>229 つまり負けを認めるってこと?
今まで特に大した理由もなくevalを批判してたけど
この度論破されて悔い改め宗教もやめることを誓いますか?
/) ( i ))) / ̄\ / / | ^o^ | ノ / < いみがわかりませんなぁ \ / ,/ / _ /´. (___)/ / l`、 ノ ノ ,...-‐''" _.l::::`ー,=-'( / ´ ,.!_;;;:r''.. ` 、 ,...-‐' _,....-‐'" `'-、:: ` 、 /.. ,....―'" `ー、__ `l /_;::::-'" /::::::::::::::::ノ ,.../._r'" ヽ`''「 ̄ ̄ (__ノ' \_\
arguments.calleeとか
addEventListenerでバインドされた匿名関数を、後から削除する方法って無いですか? removeEventListenerするには、関数への参照が必要ですよね 具体的には、とあるサイトで、匿名関数でaddEventListenerされている clickイベントハンドラを無効化する拡張を書きたいんですが
自分に都合の悪い発言はすぐ弾圧(w 流石宗教だなぁ(w
eval辞めますか? それとも…… にんげん辞めますか?
もうeval派用と禁止派用 スレ2つ作って住み分ければいいじゃん 片方は厳格な回答をする 片方はトリッキーでeval使いまくりな回答をする これで決定な 以上 もうこの話は終わり
eval派は認められたかったらなんかeval使ったナイスなコードだせよ 例えばevalソートとかなんか開発してみせろ、そしたら認めてやる
>239 ここは質問スレだから 質問されて解決されてないことを議論するのは当たり前でしょ? ばかなの?しぬの?
>>241 そんな何の筋も通ってない個人的な意見出されても困るわ
ここでは俺がリーダー
黙って俺の意見に従え
だから使いたい奴は勝手に使ってろって言ってんだろ しつけえぞほんと、いい加減キレるぞ
>>234 addEventListener をフックする方法を探せ。
勝手にキレてろよwww しつけえぞお前wwwwwwwww
プッ
>>181 var button = document.getElementById('button');
button.addEventListener('keydown', function(e){
〜処理〜
}, false);
と書いてしまうと、無名関数内からbuttonを参照し、イベントリスナーによりbuttonが無名関数を参照する循環参照となり
メモリー解放がされなくなる=メモリーリークが発生する これを断ち切るには
document.getElementById('button').addEventListener('keydown', function(e){
〜処理〜
}, false);
のように変数を使わないようにするか
var button = document.getElementById('button');
button.addEventListener('keydown', function(e){
〜処理〜
}, false);
button = null; //←nullを代入して変数buttonのDOMオブジェクトへの参照を切る
・・・のように前にここで教わったがうまく理解・説明できている自信がないw
そんなこと考慮する必要ない 昔微々たる高速化のために配列の変わりに オブジェクトを使うテクニックがあったが 今それをやるくらい無駄
window.openでurl先を開いた後にtest関数を実行させたいのですが実行できません
var w =window.open("
http://www.yahoo.co.jp ");
function test(){alert(1);}
w.addEventListener("load", test, false);
アドバイスお願いします
そういうのをXSSといいます
>>251 だーかーらー、最初から循環参照しないように書け
これはデザインの話だから、高速化のテクニックと同じに考えるバカに関わるな
>>255 いきなりバカ呼ばわりしないでおくれよ
微々たる速度差を追求するのと同じように
普通気にしなくてもいいという意味で言ったんだけど
どこかそんなにおかしいのなら謝るからちゃんと教えてくれない?
別にデザインとテクニックを一緒に語ったわけじゃないよ
気にしなくていいよって言いたかったの
>>256 循環参照しないように書くと設計の根本的な部分が変わる
それを「微々たる」と言うのは、お前が何も理解してないバカだからだろ
バカはバカのままでいいが、他人をバカに巻き込むな
いつものやつか
>>254 ブックマークレットで使いたいんですがやっぱりできないですかね?
window とか document にイベント定義できねーなw
>>257 自分が言ってるのはあくまでメモリの話ね
そんなにメモリを気にしなくても大丈夫って言いたいの
ユーザスクリプトじゃね
Yahoo!とかはXHR2許可してたりしないの? そういったところは差し違えないページでMessagingEvalにも対応して欲しいな こういうときはevalの出番だと思う
確かに今まではXSS=脆弱性でevalと絡むときは危険以外の何物でもなかったけど XSSってよく考えたらCrossSiteScriptingの略だから良い意味でも使っていいんだよな メッセージングとかこれからはサイト間の良い繋がりが大事になってくるかもしれない ワーカーもそうだけど、そういった場所でevalが活躍する日もあるかもな
>>262 お前が「気にしなくても大丈夫」なコードしか書いたことがない、という個人的事情と
もすこしでかい開発でメモリ事情も考慮した設計をしなければならない事情を
一緒くたにすんな、と言ってんだよバカ
スマホ用に作るとメモリを気にしないといけないのだよ
>267-268 一日中起動しっぱなしのアプリとかならわかるけど たかがイベントリスナーの1つや2つ、もしかしたら100個くらいあるのかもしれないけど ページを移行するまでのちょっとした時間動くスクリプトにおいて KBレベルのメモリは気にする必要普通はないと思う
>>269 だからさあ画像を裏で読み込んだりする場面で気にしないといけないのよ
循環参照を起こさずに、どうやって document にイベントを追加することができますか。
>>269 ページ移行してもメモリが開放されないのがメモリリークじゃないの
スマホ用のブラウザ(=最近のブラウザ)なら起きないと思うけど
>>271 たとえばグローバルな関数を定義して、その関数をイベントハンドラとして登録すれば
クロージャがないので循環参照も無いよね。
document にイベントリスナを定義した場合、 document -> listener/scope -> window -> document これは循環参照にならないの? リークの有無はともかく。
>>274 window (グローバルオブジェクト)はJS内のどっからでもアクセスできるんでわざわざ
イベントリスナにその参照を保持したりしないでしょ。
DOMエンジン―JavaScriptエンジン間の参照を切る (function() { var ref = []; // Array ref[0] = document.createElement("div"); ref[1] = document.createElement("object"); … ref[0].addEventListener("click", function() { alert(ref)… // 関数Example })(); 関数Exampleはrefを覗けるがrefに入ってる要素を直接は覗けないのでここで切れる
var name=document.form.name.value; テキストボックスで取得した値を変数nameに入れて、 nameが半角英数字とそれ以外って判定するにはどうするのですか? 正規表現ですか?
>>276 循環の輪がつながってちゃ意味ないでしょ
if(/^[A-Za-z0-9]+$/.test(name)) alert("OK"); 半角全角の違いを許容しない仕様は避けるべき、混在を許容するか内部で自動的に半角に揃えるようにすることをお勧めする たとえば、Excelが全角数字をただの文字として扱うと妄想してみよう、使い勝手はどうだろうか
>>279 ありがとうございました。
全角は半角変換することにします。
メモリリークするって言ってた人は、今度は循環参照って言うようになったみたいだね
もしループで無名関数いっぱい作ってたらおもしろいな
>>279 最後の行がなければ完璧なんだが…惜しい
匿名関数と無名関数って同じ意味ですか?
単一ページのメモリリークなんて気にしなくていいよ
メモリリークは単一ページの中で起きても他のページに移ったあともメモリが解放されなく なる問題。解放するにはブラウザを終了させるしかない。ま、今のブラウザでは問題ない んだから別に無視でいいと思うけど、「他のページに移ればそれで終わる」問題ではなかったのね。
だからそんなこと気にする必要一切無し 残念なことに俺が使ってるブラウザは今だにメモリリーク起こるが 重くなったら一旦閉じればいいだけのこと
Web製作的には、気にするかどうか決めるのはお客様であってアンタじゃないの。 アンタの主張はそれ以上ないんだから黙ってて。
var a = (20.2*10) - (20.1*10); console.log(a); この結果が1になるのに var a = (20.02*100) - (20.01*100); console.log(a); この結果が1にならず、0.9999略になるのはなぜですか?
>>288 お客様?
はて、質問者はそんな条件は出してなかったが
それは君のただの思い込みでしょ?
自分は一般論を言ったまでだ
>>289 両方1にならないよ
何のブラウザ使ってる?
>>290 話がかみ合わないのは君の経験不足
一度スマフォでゲームを作る仕事をやってみればいい
>>289 そこらの問題はあれだ
0.3 != 0.2 + 0.1
これらと同じで浮動小数点数の問題だ
>>294 小数点同士計算しないように掛けてから計算してるのに?
20.01*100で狂ってる
~~(20.02*100) - ~~(20.01*100) === 1 とか Math.floor(20.02*100) - Math.floor(20.01*100) === 1 にしないと
function F() { var private = 2; this.arg = 1; this.calc = function () { return this.arg * private; } } こんなクラスもどき関数というかコンストラクタを function F() { var private = 2; this.arg = 1; Object.defineProperty(this,'calc',{ value: function () { return this.arg * private; } }); } こんな感じにdefineProperty使ったのに書き換えられるようになったりしたけど 環境固定でdefineProperty使えるならやっぱ後者の方がいいのかな
>>298 それ読みにくくなっただけでメリットが見えないんやけど
なんで書き換えなきゃならんのん
一番でかいのは書き換え不可に出来る点かな 可読性とかを考えるなら上だろうけど 下も読み慣れれば然程変わった書き方でも無いし setter/getterを定義する時も同様の書き方になるし 問題ないのではないかと思ってどうなんだろう?と思った
おまえらってJavaScriptでなに作ってるの?
>>304 それググってもよくわからんのだけどJSでポップアップ出すのに特許が必要なの?
307 :
Name_Not_Found :2012/01/19(木) 15:24:32.97 ID:qHXNP6l+
>>305 ググッてもほとんど出てこなくなるっつーのも
風化したんだなーと、感慨もひとしお
308 :
Name_Not_Found :2012/01/19(木) 15:25:24.51 ID:qHXNP6l+
>>308 それも好き。コーディングしてる時それかMenschでやってるw(フォントリンクしつつ)
293 自分はAndroidやiPhoneが日本で出る前からずっとスマートフォン向けの開発してきたんだが 経験の浅いお前とは違って何をこだわるべきかはよく熟知してる 例えばオブジェクトを配列がわりに使うのはどの環境でどのくらい効果、逆効果があるのかまで完全にしりつくしてるんだぞ そしてそういうせこせこしたことはもうする必要がないことも分かってる 出直してきな
>>309 Perl には使えないなw >Mensch
perlならinconsolataかな
313 :
Name_Not_Found :2012/01/19(木) 15:53:24.21 ID:qHXNP6l+
314 :
Name_Not_Found :2012/01/19(木) 15:55:19.51 ID:qHXNP6l+
>>310 そういうの書くのよそうよ、荒れるし
どうせこのスレの人たちなんて、NN2の頃からJS書いてるような
人たちばっかりだろうし
今までPCのブラウザでUAを変えてアクセスしていたスマホのサイトにJavaScriptが追記されて エラーページに飛ばされるようになりました。 抜粋して書いてますが、エラーページに飛ばされないようにするにはどのような scriptを作成すればよろしいのでしょうか? var isTouch = ('ontouchstart' in window); if(isTouch === false && thisPage === null && topPage !== null){ "" setTimeout("accessErrorRedirect()",0); var outChk = 1; "" } よろしくお願いします
>>1 (2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
318 :
Name_Not_Found :2012/01/19(木) 16:34:47.34 ID:qHXNP6l+
319 :
Name_Not_Found :2012/01/19(木) 16:35:46.69 ID:qHXNP6l+
何故言い換えたし。
>>318 オフにするとサイトにほとんど何も表示されなくなってしまうのです
なぜそうしてまでサイトみるの?
そんな子に育てた覚えはありません!
<dtid="a">2011年2月1日</dt> 「2011年2月1日」をJavascriptで取得って可能ですか?
var x = document.getElementById("a").html; alert(x); ポーン、2011年2月1日
あ、ごめんinnerぬけてた document.getElementById("a").innerhtml;
innerHTML
textContent
マルチかよ死ね
正直マルチでも別にいいじゃんかと思う 特に難しい問題ならな きちんと両方の回答を参考にする気があるんなら問題ない ただ早く知りたいからとかだけならちょっと問題だと俺は思う でも本当に困ってるんだったらそれでも俺は許すよ
あ、すいません
なんかあっちでスレ違いって言われて来たんですけど
あっちのスレが一時的に読み書きできなかったんであっちにそれを書けなかったんです
どちらにせよマナー違反みたいなんで
>>316 は取り下げます
ご迷惑をおかけして申し訳ありませんでした
>>334 自演じゃない
どうして君はマルチくらいで怒るのさ
スレ違って言われてからこっち来たならいいんじゃねーの?
マルチポストがどんだけ酷いもんか調べてから来い自演タコ
しかも内容はそんな重要なことでもないだろが
>>338 ケースバイケースだろ
マルチだからっていって条件反射で怒りだすのはおかしい
あんた何様のつもりだよ
>>333 そんな甘いこと言ってたら、マルチが増えるだけ。どんなマルチも無視するべき
>正直マルチでも別にいいんじゃないかと思う
>特に難しい問題ならな
難しい問題かどうかは主観的なもの
質問者はわからないから聞いているのであって、簡単だったら聞かないだろ?
マルチかばってる奴は皆同類だと見ていいか?
板違いだしマルチだし何なの
>>342 複数回答が必要な難しい問題って事だよ
完全主観じゃないだろ
本当あんたはボンクラだな
荒らしは早く失せろよ
マルチでも別にいいじゃん そんなに嫌なら黙って無視しとけよ 一々ケチ付けて書き込むな 迷惑なんだよ
そんなにプライドが高くてマルチされるのが嫌なら 質問者がマルチしなくても済むような素晴らしい回答しろよ 話はそれから
だから知恵袋行ってやってくれ
マルチ肯定派 vs マルチ否定派
>>347 別にかばってるんじゃねえ
つまらんくだらん汚いグチを書き込むなって言ってんだよ
スレ違で誤爆したらその質問は二度と出来ないとか、どんな鬼畜ゲームだ
っ 鏡
このスレに来るのも意味不明だしただのマルチだろ 終了
>>350 別に俺はルールを統一しようとかそういった事を言ってるわけじゃないが
マルチは一律マナー違反とか言いはじめるバカが許せないんだよ
わかりやすい自演ですなぁ
>>346 マルチの話題で一番レスしてるのお前じゃんw
まじで?
>>359 だから?
何が言いたいのかちゃんとハッキリ言えよ
361 うん、マジでマジ
>>360 俺はお前が自演じゃないことも、過去にマルチして叩かれていたことも知っているよ
362 いや、質問スレにとって重要な問題だ 今までも何回も何回も何回も何回も マルチに執着する奴のせいで問題は起きてきた
じゃあ執着するなよ
>>365 俺は質問自体どこでもしたことはない
自分で調べられるから
>>367 いんや、今回こそは許せん
もう4年くらい我慢してきた
なにこれ
いや、やっぱりもうスッキリしたわ みんな、迷惑かけたな ありがとな
要するにスレ移動するなら必ず一言断っとかないとこうやって大変な事になるという事ですね
社会の縮図w
すれ違いと言われて移動してきたなら、 移動してきた事を明記した方がマルチと言われずにすむ。 移動前に移動前のスレにも移動しますみたいな事を書いておくと完璧だろう。 これらがマナーってもんだろ。 別に強要はしないがマナー悪いと思って答えない人や煩く言う人がいるのも事実だし。
さすがマルチ様はマルチを指摘されて回答が付かないことが分かると暴れだすよな
よくわからんけど上のって質問する場所間違えてこっちに来たってだけなんじゃないの
元の巣でも謝辞の一つもなかったようだが?
>>335 にそれについても書いてあるじゃん
真偽はどうかしらんけど
スレ違だからChromeスレ行けと言われてここになぜ来た
ああ本当に鯖がアレな感じだったのか 真偽はどうかしらんけどとか言ってすまんかった
383 :
Name_Not_Found :2012/01/19(木) 22:03:09.35 ID:9nslCmQ/
javascriptというかdomの質問なんですが、 domのelementとnodeってどう違うんでしょうか? ある要素の子要素を取るときにfirstChildElementを使うときもあればchildNodes[i]とかで取得したりと 自分の中で使い分けがバラバラだったので統一したいと思っての質問です。
そのスレに比べたらこっちの応対の方が遥かに平和的じゃないか
>>383 element -> 吉川
node -> 布袋
>>383 NodeにはtextNodeとかも含まれるけど
ElementNodeにはtextNodeは含まれずHTMLのエレメントだけになる
HTMLじゃないエレメントもElementNodeに含まれます
getElement...系で取得できるものが要素 取得できないものも含むのがノードや。ノードさんの勝ちやな!
SOHOスレを抜いて今ダントツの勢いw
390 :
Name_Not_Found :2012/01/19(木) 23:00:02.11 ID:9nslCmQ/
ありがとうございます ElementNode ⊆ Node って感じでしょうか。具体的にtextnodeとかが含まれるか否かが違うだけってことで。 例えばspanElementとかならばgetElement系で取得できるそれとchildNodes[i]で取得できるそれに 違いはないということですね。
HTMLを記述する時に改行コードなんかが含まれると それらはTextNode扱いになるので注意
すみません、質問です jQueryのspritemenuに関する質問なのですが、 animate:'height'で画像が上から表示されるのものを下から表示にすることは可能でしょうか 色々ぐぐったりしてみたのですが分からなくて よろしくお願いします
マルチは駄目だな 本人は満足かもしれないが、本人以外では害悪の方がはるかに多い
>>383 (function re(n){
var proto = Object.getPrototypeOf(n);
if (proto) {
console.log(proto.constructor.name);
re(proto);
}
})(document.createElement('div'));
これをChromeのConsoleで実行すると、
>HTMLDivElement
>HTMLElement
>Element
>Node
>Object
こうなる。divはHTMLDivElement、HTMLElement、Element、Node、Objectを継承してるってことね。
document.createElementをdocument.createTextNodeに変えてみたりすると違いがわかってくるでしょ。
jquery 詳しい方、教えてください。 $('#hoge').animate({width:'show'}); で非表示だったID:hoge要素を表示する際 スライドエフェクトが左から右に向かってかかるんですが これを逆方向にする事ってできるんでしょうか?? クリックする度、右から左へどんどん流れるようにしたいんですが 左から右へしか動かず困っています。
NodeはEventTargetの一つじゃないかい
>>395 たとえばさ、その要素が100px×100pxの物体だとすんじゃん?
それをanimateで出すと横幅が0,1,2,3,,,,100ってなるわけよ
そんでそれがもし50×100pxの物体だったするとHTMLは基本左寄せだろ?だから左上の位置は横幅がいくつになろうと変わらない
だから右にのびてるように見える、右寄せだったら右上の位置が変わらないから左に伸びるようにみえる、中央配置だったら中央の位置が変わらないから両方に向かって伸びるように見える
<div align="center">
<div id="hoge" style="background-color:#0099CC; width:120px; height:120px;">あいうお</div>
</div>
これでhideした後そのスクリプト実験してみ、そっちの方がわかりやすい、あとはCSSでその要素の配置をなんとかせい
上にマスクするようなの乗せて、それをけせばいいんじゃね?
ってリロード押してなかった件 恥ずかしすぎる
>393 どんな害悪よ?
402 :
Name_Not_Found :2012/01/20(金) 12:32:12.97 ID:+pa3JUop
マルチじゃなくてもあんなふざけた質問には答えないけどね
偉そうにw そういうレスする暇があったら、 簡単に回答してやればいいのに
>>1 (2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
オマエモナー(死語?)。オレモナー(〃)
なんや我 喧嘩売ってんのかおい こっちは柔道で純1級持ってるんだぞ
なぜこのスレはアホばかりが集まるんだろう・・・
1級(笑) かかってこいよ
危ないからやめとくわ 柔道は自分の身を守る為のもの 喧嘩に使う為のものじゃない
そろばん最強。 手にも足にも装備できる。
両手+顎で猫踏んじゃったをピアノ演奏できる俺をなめるな
415 :
Name_Not_Found :2012/01/20(金) 16:20:23.23 ID:+pa3JUop
剣道初段だけど、あんまり役に立たないなー 書道5段は結婚式とお葬式、年賀状で年に何度か活躍する
柔道5段は結婚式とお葬式、年賀状で年に何度か活躍する に見えてなんのこっちゃと思った
俺はTOEICがメジャーじゃない時期英検なんて必要ねぇ、寧ろ採点基準に英検入れてる所なんて眼中にねぇ と思って大企業受けたら落ちまくって日本に失望して海外行ったわ 今は日本web業界のレベルの低さに失望してる、mixiとか開発馬鹿なの?
自伝でも書いてください
ミクソはIE6とかにも対応させてるからだろ 何せユーザー維持しようと必死なんだから 5%を切って95%を楽しませる勇気もない 安定求めちゃってるから仕方がないね それでもつぶやき機能は失笑もの
なんか場末の酒場で日本の将来を論じてる酔っぱらいと同じ臭いを感じる
まだピチピチの高校生です
>>414 両手だけでできるじゃん
アゴ必要ないじゃん
>>422 旋律、伴奏、対旋律の3つをを常にひくには顎が必要
canvasで描いた特定の円の上にマウスが乗ったらイベントを発生させる方法を教えてください canvasの中に描かれる円は一つだけではないのでcanvas要素にイベントを登録するのはできません
うんだからイベントじゃなくて座標で判定するんだよ
>>424 透明なクリッカブルマップを上から重ねるべし
数学の問題で点Aが円Bの中にあるかどうかってやつがあったでしょ それと同じ計算をするだけ
Googleのコンソールでhtmlを書いて実行させられませんか? ちょこっとした内容をエディタで書いてブラウザで確認するのが面倒で
data:text/html,<html><h1>Hello world</h1></html>
432 :
Name_Not_Found :2012/01/20(金) 22:16:21.63 ID:UhrynC3j
>>428 例えば円の中心座標がX1,Y1で半径がR1だったとする
そこで座標X2,Y2がクリックされたとき
(X1-X2)^2+(Y1-Y2)^2<=R1^2 だったら
円の中をクリックされたと判定できる
canvas使うなら高校くらいの幾何学は勉強し直すといいかも 煽りじゃなくてその辺の数式は普通に便利だから
>>429 createHTMLDocument, innerHTML, insertAdjacentHTML
>>431 とかをブックマークバーにでも入れとくのが一番やな
使ったことなかったけど登録とかしなくても保存して公開までできるのか
滅茶苦茶便利やんけ
>>429 SeaMonkey Composerの方が使いやすいと思う
あれがあるから、Firefoxには乗り換えられん
質問です。 【環境】 WindowsXP, Opera11 XMLHttpRequestオブジェクトを使用し、openメソッドでuserName,passwordを指定しましたが、 userNameは渡り、passwordが渡りません。 GETでもPOSTでもダメでした。
ダメなコードを書いてください
>>441 xhr.open(method, url, async, userName, password); だろ
439です。 httpRequest = new XMLHttpRequest(); httpRequest.open('GET', url, false, userName, password); httpRequest.send(null); location.href = url; IE8では通過できたのでブラウザの仕様でしょうか。
441でやってみて
Canvasにα0.01のランダムカラーで三角形を毎フレーム百個ずつくらいで ランダムな位置に表示すると不思議な効果が得られますよね ああいった効果をまとめているサイト等をご存知ないですか?
HTML5もjQueryみたいなanimateとかが楽に出来るライブラリできないのかな
ログインの自動化用ショートカットリンク作りたいんだけど「特定のURLを開いてからフォームに入力してsubmit」って無理? 手動でページ開いてからスクリプト実行するショートカット作るしかないのかな USBメモリにグループウェアのリンクいれて持ち歩いてるけど地味にめんどくさい・・・
>>441 ,444
location.hrefに渡すときのurlをその形式に変更しましたらうまくいきました。
ありがとうございます。
IEでは認められない形式だったので、他のブラウザでもダメだと思い込んでいました。
>>447 無理じゃない
ただし同ドメインでもユーザーの明示的操作イベントによって起動した関数内以外での
submit()やclick()はブラウザや設定によって無視される可能性がある
ユーザースクリプトなら確実
>>449 ですよねーorz
onload判定とかどうすんだって話もあるしiframeとかで逃げられるような気がしなくもないからそっちで考えてみます
どもすー
>>445 それどういうのですか
どういうことを言っているのかサンプルサイトを教えてください
そしたら僕が今まで貯めてきたブックマーク6万個の中から提示できるかもしれません
iframeで開いたページのdocument取ってgetelementしてやれば良かろうと思ったら権限問題で出来ないのね なにかいい対処法はないものですかね・・・
同一ドメイン内だったらできるっしょ
ショートカットでやろうとするから駄目。 html を用意して、そのグループウェアのログインフォームと値を 自前で書いといて、load と共に POST すれば桶。
ここは書き込める?
>>316 var isTouch = ('ontouchstart' in window);
>>453 >>454 グループウェアへのリンクいれたメモリで各地を転々とするので同一ドメインにならないのよね。自分はWEB管じゃないし
POSTはWEB管になんか言われそうで避けてたんだけどそれしかなさそうだしそれで行くわー
ありがとん
>>457 それじゃ無理だな
あきらめるしかない、セキュリティ上
jsのリファレンスはMDNのがいいよ
460 :
459 :2012/01/22(日) 02:48:16.88 ID:???
誤爆さーせん
>>457 ユーザースクリプトについては見逃してるのかな?
USBメモリに入るスタンドアロンのFxでユーザースクリプト書けば?
462 :
Name_Not_Found :2012/01/22(日) 11:18:19.46 ID:QyKWPpn1
スマートフォンでリンクを選択したしたときに、画面が左にスライドして移動するのですが あれはどのように実現しているのでしょうか? 何かモジュールで実現しているようであればアドバイスいただけると助かります。
463 :
Name_Not_Found :2012/01/22(日) 11:18:29.35 ID:QyKWPpn1
スマートフォンでリンクを選択したしたときに、画面が左にスライドして移動するのですが あれはどのように実現しているのでしょうか? 何かモジュールで実現しているようであればアドバイスいただけると助かります。
マルチ乙 普通にposition:absolute;のdivで外側囲って移動させりゃいいじゃん まあまあ重いから注意しないといけないけどな
var arr = getThousandArr(); ←ここでarrに、1000個の配列突っ込んでる。 console.log(arr); ←ちゃんと1000個の配列が入った二次元配列が出力される。中身も正しい。 console.log(arr[32][1]); ←なぜかundefinedになる・・・ console.log(arr[543]); ←上と同じでなぜかundefinedになる・・・ 色々試してみても全然わからん・・・ なんでarrだけだとちゃんと出力されるのに、要素指定するとundefinedになるんだ・・・?
466 :
465 :2012/01/22(日) 16:01:08.28 ID:???
ちなみにarrをグローバル変数にして、デバッガで下二行を実行するとちゃんと中身が表示されるんだ
getThousandArr これの中身は? new Array(1000); とかしたのを返したとしてもlengthは1000になるよ
テスト目的メモリを128MB使うコードを作りたいんですが これって var a = []; for (var i=0; i<128000000; i++){ a[i] = 0; } と書くとforで回して代入する時間が非常にかかるのでよりもっと良いコードありませんか?
>>468 こんな感じ、ただし配列に入るのは文字列だから注意
a=(new Array(128000000+1)).join(0).split("");
どちらにしろそれじゃあメモリを128MB使うことになる保証がないがな binaryデータ作るのが確実じゃね
>>469 どうもありがとうございます
これをスマフォでの挙動のチェックに使いたいと思います
>>470 1文字1バイトで128MB分でも保障ってないのですか?
Ajaxというのを始め様と思って本を読んだりしたのですが、これってもしかして phpにPOST ↓ phpでPOSTされたのを処理 ↓ 値返ってくる というのも非同期で出来るのでしょうか? たとえば「1」を送ってphpで10倍して「10」が返って来たらその値をjavascriptで表示するような
>>471 連続的なデータじゃないから
どんな感じに記録されるかはわからん
それなら別に配列にしないで文字列にすればいいじゃん
メモリって1024ベースじゃなかったっけ?
>>471 >>473 ,474
一つ一つに型やいろんな情報もつくしメモリ管理上大きくなる
a=(new Array(128000000+1)).join('1')
でいいんじゃないか
>>472 できるが
10秒くらい以上処理に時間かけるとタイムアウト気にしないといけなくなってくるから
WEBSocketとか使うべし
>>476 javascriptだけではなくphpでの処理時間、通信時間も考慮しないとならないから確かにそうですね
しかしとっても便利そうなので頑張ってみます、ありがとうございました
478 :
465 :2012/01/22(日) 17:31:56.17 ID:???
>>467 1000行2列のcsvファイルをjQueryでgetしたのを配列にして返すって関数
詳しく書くとこんな感じ
var getThousandArr = function() {
arr = [];
$.get('./filename.csv', function(data) {
var lines = data.split('\n');
$.each(lines, function(lineNo, line) {
var items = [];
items = line.split(',');
arr.push(items);
});
});
return arr;
};
Workerについての質問です Workerをメインから強制的に終了させるコマンドがないのはどうしてなのでしょうか? もしWorkerが無限ループに陥ったり処理に長い時間がかかることになったら ページの移動でしか止める術がありませんよね?
matchを使用して文字列の一致を見てるんですが、 不一致のときって普通NULLが返って次の処理にいかないんですかね? なぜか不一致だとそこで処理が終了してしまうのですが。
>>478 お前それarrがグローバルやないかい
しかも非同期処理噛んどるやないかい
>>471 0みたいな数はは最近の環境なら32bit、古い環境なら64bitで記録されるから
実データ部だけでも一つに付きそれぞれ4Bite、8Bite食う
あとメモリは過度の断片化を避けるため余裕をもって取られる
>>480 どうせnullにちょっかい出してるんだろ
try{
}catch(e){alert(e)}
で問題の部分を囲め
>>478 あー、非同期が理解できてない人の典型的なミスだね。Ajaxの結果を受け取ってから次の処理をしないとダメだよ
var getArr = function(success) {
$.get('', function(data) {
var arr = [];
/*省略*/
success(arr);
});
};
getArr(function(arr) {
console.log(arr[1][1]);
});
485 :
465 :2012/01/22(日) 18:24:07.70 ID:???
486 :
465 :2012/01/22(日) 18:25:32.05 ID:???
>>485 俺も他の手続型言語と同じイメージで使い始めて苦労したわ
・JavaScriptは完全にシングルスレッド
・TimesやAjax系の非同期スレッドは後回しになる
みたいなことを知ってやっとまともに動くものが作れるようになった
↑が言ってるのは要は マルチスレッドで同期通信を行う場合と シングルスレッドで非同期通信を行う場合だろうね どうにもなれないのならWorkerでやればいいと思うけどね そんなに変わらないけど
489 :
Name_Not_Found :2012/01/22(日) 19:52:32.85 ID:owhie7oH
ぎゃぁあああ $(function() { $.ajax({ type: "GET", url: "test.php", success: function(msg) { var get_json = eval( "("+msg+")" ); // var get_json = JSON.parse(msg); alert(get_json["apple"]); } }); }); ieでjsonデータ受け取る時にJSON.parseだとエラーが出やがる、 クソieの野郎。eval使わない方法ってありますか? ってか何でJSON.parseでエラーがでるのでしょう?
>>489 validなJSONじゃないからだろうね。
JSONはJavaScript以外の言語で扱うために、JavaScriptのそれよりも大幅に厳密なシンタックスで書かないといけない
手動でJSON作るとたいていミスる。適当なライブラリ使えば大丈夫なはず
いや単にJSONオブジェクトが無いだけなんじゃ・・・ json2.jsを使いやがれなさい
エラーメッセージも書かんで
つか、jQueryつかってんだったら $.parseJSONつかえばいいだろうに。
JSON.parseはまだ使えんだろう evalかjQuery使っとけ 厳密なJSONでないのならeval使え
そんなeval()で大丈夫か?
そんなことでevalな
Chromeのコンソール並のエディタってないですか? あるいはコンソールをエディタとして使えますか? 正式にはデベロッパーツールと言うみたいですね これで変更した後に「Resources」から「Save as」でセーブすればおkですか? そういう使い方してる人いますか?
json2.jsは最終的にはevalを使うけど、その前にvalidなJSONかどうかを調べて、validでなければエラーだすよ。 jQuery.parseJSONも同様。というか中身はjson2.jsからのコピペだし(コピペというと聴こえは悪いけど、json2.jsはPublic Domain)。 JSONかどうかチェックせずにevalするのはオススメしない(駄目とは言わないよ)。
jQueryはJSONオブジェクトがあればJSONオブジェクト使うんじゃないか
json2.jsだってそうだ
>>499 そうだね。json2.jsもJSON.parse、JSON.stringifyがない時だけそれを定義するから、
基本的にIE6,7以外ではネイティブのJSON.parseが使われるし、そうあるべき
↑でjson2.js配布してるのは"eval is evil"の人だからな eval見るとわけもわからず大騒ぎするような人にはそう言っとけ
そこは json2.js で使っているから、おれも使ってもいいんだと考えるより、 つかうんなら json2.js でやっているぐらいの慎重さが必要なんだなと考えるべきだろう。
まーたeval信者か
入門書見ながらJsの勉強しています。
ネットショッピングを題材にした章をすすめているんですが
ドロップダウンメニューで商品の個数を選択するとその隣のテキストボックスに
商品個数x商品代金の小計が自動的に入るはずなんですがどうもうまくいきません。
自分なりに見直しはかけてみたつもりなんですが、分からないので質問させてください。
http://ideone.com/oz1LZ
function hoge(){ jQueryのアニメなど } funcgion fufu(){ hoge(); fuge(): } で、hoge終了後にfuge()を実行させたいのですが何か良い手は無いでしょうか? hogeのanimate({〜〜},function(){ fuge() })などあるんですが、この場合だとfuge以外の関数が使えないのでどうしたものかと
>>508 function hoge(callback) {
// animateのコールバック関数でcallbackを実行する
}
function fuga() {
hoge(fuga);
}
510 :
508 :2012/01/23(月) 03:20:20.88 ID:???
試してみたのですが function hoge(callback){ animate({〜〜},function(){ }) }
試してみたのですが function hoge(callback){ animate({〜〜},function(){ callback }) } function a(){ alert(1); } function fuga(){ hoge(a()) } とやってもナゼか終了後ではなく最初にalertが実行されるという事態に callbackの部分をalert(1)に変えるとちゃんと終了後になるんですが、なんででしょ?コレは
> hoge(a()) コールバックに引数持たせたいのか? 持たせること可能だっけ?
>>511 > hoge(a())
この時点でaを実行し、その戻り値を実引数にしてしまっている
単に関数オブジェクトを渡さねばならない
そしてanimateのコールバック内でcallbackを実行していない(()をつけていない)
あるいはcalbackを直接animateに渡せばよい
以下は、#box要素をクリックする度に右に100px移動した後alertという例(jQuery)
http://jsfiddle.net/Q8wgg/ <div id="box" style="width:100px;height:100px;background:orange;position:relative;left:0;"></div>
<script>
function move(callback) {
$('#box').animate({left:'+=100px'}, 'slow', 'swing', callback);
}
$('#box').click(function (evt) {
move(function () {
alert('complete');
});
});
</script>
>>507 > onchange = document.form01.kei02.value = 500*selectedIndex>
onchange="〜">とすべし
そして
> <script language = "javascript">
> document.myimg.src
> setTimeout("changeimage()",1000);
こんな本はブックオフで売って、もっと新しい本を買おう
初心者なのですが、だいぶハマってしまいましたので、こちらで質問させてください。 ajaxで取得した下記xmlファイルについてですが、 <![CDATA[ 〜 ]]>内にあるbodyタグの値が取り出せません。 alert(str);を実行すると<body>〜</body>は表示できるのですが、 セレクタで<body>を指定すると見つからないようです。// &(str).find("body").length → 0 何か良い手はありますか? ○ソース $(function(){ $.ajax({ url:"sample.xml", dataType: 'xml', success : function(data){ var str = $(data).find("hoge").text();//hogeタグのテキストを取得 alert($(str).find("piyo").text()) // "success" alert($(str).find("body").text()); // 何も表示されない } }); }); ○sample.xml <?xml version="1.0" encoding="utf-8" ?> <hoge> <![CDATA[ <huga> <piyo>success</piyo> <body>failed</body> </huga> ]]> </hoge>
516 :
515 :2012/01/23(月) 05:02:13.56 ID:???
すみません、訂正です。 ×&(str).find("body").length ○$(str).find("body").length ×alert($(str).find("piyo").text()) ○alert($(str).find("piyo").text());
>>515 正規表現マッチでStringとして取り出せるがxmlに対する適切な方法は知らない
>>515 $(str)の strはHTMLとして解釈されるから、それが影響してるんじゃないかな。
$.parseXML を使えばいいと思うよ。
$($.parseXML(str)).find〜 みたいな感じ。
jQueryの構文見るとイライラする病を治したいのだけどどうしたらいいですか?教えてください 無理にでも使わないといけないんですがまじで重症です jQueryの構文嫌いがなんとかjQueryを好きになる方法を考えてあげて下さい
CSSを楽しめよ坊や
更新ボタンでホームページを読み込ませるとき出来ればfirefoxだけスーパーリロードを強制させたいのですが JavaScriptのHTMLの記述はどうしたらいいでしょうか? 。ググってでてきた以下では、すべてのブラウザで普通のリロードになってしまいます。宜しくお願いいたします。 <head> <script type="text/javascript"> <!-- function refresh() { window.location.reload(true); } // --> </script> </head>
書き忘れましたが、「更新ボタン」はブラウザの更新ボタンの事でページにボタンを表示させたりではないです。
なんでおまえらそんなにeval嫌うんだ
>>521 その方法は嘘
metaタグ使え
524 :
Name_Not_Found :2012/01/23(月) 08:48:16.04 ID:GnWivuLK
jqueryについて教えていただきたいのですが、 現在メディアクエリを使用しウェブサイトを制作しております。 そのサイトでjquery・スムーススクロールを使っているのですが、iphoneで閲覧したさいにスクロール先の地点を、 var sclpos = 52;からvar sclpos = 140; へ変更したいのですが可能でしょうか? よろしくお願いいたします。 $(function() { $('a[href*=#]').click(function() { if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) { var target = $(this.hash); target = target.length && target; if (target.length) { var sclpos = 52; var scldurat = 1200; var targetOffset = target.offset().top - sclpos; $('html,body') .animate({scrollTop: targetOffset}, {duration: scldurat, easing: "easeOutExpo"}); return false; } } }); });
おま…… それくらいは自分で調べろよ じゃないとjQueryはできてもいつまでたってもJavaScriptができるようにならんぞ
> なんでおまえらそんなにeval嫌うんだ ロクにチェックもできない脳弱PGの言い訳
今回の件でも分かったじゃん。盲目的にeval使ってたら自分が扱ってるJSONが正当でない ことにいつまでも気づかないでしょ。基本JSON.parse使って、しかたないときは注意しつつ evalを使うというので正解だったよね。
サーバーにおいてあるJSONテキストをAjaxで取得するってことじゃないの? JavaScriptでしか使わないのならevalでparseできる範囲で正式なJSONじゃなくてもよくないかな?
不正なJSONをサーバーに置く必要性がわからんが
>しかたないときは注意しつつeval これは間違い 注意しつつでは無く正しいか検証してからだ eval is evilのdouglascrockfordも必要な時もあるとしてる。 でもそれらは大抵の場合コードが悪いからとも書き加えてる。
>>529 JSONの意味知ってる?
evalでparseできれば広義のJSONだし何も問題ないでしょ
結局は
>>530 でFA
JSONの意味の議論でもしたいの?
JSONだってちゃんとした仕様あるんだからそれ以外はJSON風でしかないぞ。 仕様通りなJSONであれば他言語への流用も効くんだし。
JSON風で何が悪い 広義のJSONだ
わかったわかった
JSONの最期は溺れた湖に沈んで終わりだっけ?
新定義「広義のJSON」
JSONはRFCやECMAScriptで仕様が決まっているので、広義のJSONなどという曖昧なものはない JavaScriptのオブジェクトリテラルのことを言いたいのだと思うけど、勝手にオレオレ用語を作らないほうがいい
JSONはコメントぐらい許容してほしいな
>>538 だからそういう仕様にそったものは狭義のJSONっていうんだよ
頭悪いなお前
広義のJSONの定義がいまいちわからんが JSのevalで通る物なら関数も書けるな
そりゃ自分専用用語作れば議論に敗けないつもりになれるだろうよ。 迷惑だからこゆとこに書き込むのは遠慮頂きたいもんだね。
var a = "abc tesr"; var b = " abc testr"; 文字列の 一番最初に現れる単語([a-z]+)のみ取得するにはどのようなメソッドを使えばよいのでしょうか?
544 :
543 :2012/01/23(月) 12:18:51.56 ID:???
補足 var a = "abc tesr"; var b = " abc testr"; 初めに現れる単語の 前に現れる空白は0個以上 後に現れる空白は1以上です
正規表現のお勉強をするべきですね。ただ教えたって何も身につかんでしょ。
replaceとmatchを使う以外に方法は無いのですか?
547 :
Name_Not_Found :2012/01/23(月) 12:58:54.00 ID:FiCWcl31
>>545 そりゃ一文字ずつ見てって条件分岐することも出来なかないけど
正規表現使ったほうが簡単じゃね?
split使えばいい a.split(' ')[0]
と思ったけど 初めに現れる単語の 前に現れる空白は0個以上 後に現れる空白は1以上です この仕様から " abc def"もありえるって事だよな まぁその場合trimしてからsplitしろって事になるけど
trimって標準のメソッドなの? ES3仕様を確認しようとしたら見つけられない。
es5から実装 まぁない場合は正規表現使えば良い
>>548-549 trimが使えるのは勉強になりました
splitとtrimでやりたいとおもいます
test aaa bbb ↑2番目の単語を取得する場合ってやっぱりreplace使わないとダメですか?
555 :
Name_Not_Found :2012/01/23(月) 14:02:25.67 ID:FiCWcl31
正規表現なんて複雑なだけだし使わなくていいならそれに越したことはない ってのが世間一般の見解です
正規表現は避けては通れない道 反復学習ソフト付き 正規表現書き方ドリルって本を買おうか悩んでるw
世間一般の人はそもそも正規表現なんて知らないだろ。 プログラマとしては覚えておいて損はない。
覚えるのと使うのでは別問題だけどな
>>555 何でも正規表現で解決するというのがイヤなだけです
正規表現はいつもエディタで触ってますが
561 :
Name_Not_Found :2012/01/23(月) 14:58:42.57 ID:FiCWcl31
正規表現はテキストエディタでコードの書き換えとかでも使うじゃん? "test aaa bbb"から"aaa"を抜くのに いちいちループ回されたら、なんだかなあって思う 個人的な意見だけど
ナンデモ正規表現で解決できるマスターにオレはなりたいよ
例えばですが var a = "abcde"; からcdeだけ取りたい場合に a.replace(/ab/, ""); なんてするのがイヤなんですよ a.substring(2); でいいじゃないですか
564 :
Name_Not_Found :2012/01/23(月) 15:10:45.44 ID:FiCWcl31
それを正規表現でやろうとは思わんだろう
function a(){ for(var i=0;i<10;i++){} } function a(){ var i=0; for(i=0;i<10;i++){} } この二つの違いって何ですか?
var文を書く場所が違うだけ
二つ目はこう書けるお function a(){ var i=0; for(;i<10;i++){} }
>>565 前者のほうがプロの香りがしてcool。
…と信じてる自称エキスパートがたくさんいるよw
前者も後者もfor以外からiも参照できるし違いはない思うんだけど
違いはないが後者の始めにvar i = 0;と0を宣言するのはなんか違和感あるな そこはnullでいいんじゃねと思う
数値なのにnullですか
572 :
Name_Not_Found :2012/01/23(月) 16:01:41.60 ID:FiCWcl31
何も書かない、って意味じゃないかと
後者を書くとしたら function a(){ var i/*,他の宣言*/; for(i=0;i<10;i++){} } こうだろうなぁ
ループが2回、3回とある場合はどれにする? function a(){ for(var i=0;i<10;i++){} for(var i=0;i<20;i++){} } function a(){ for(var i=0;i<10;i++){} for(i=0;i<20;i++){} } function a(){ var i; for(i=0;i<10;i++){} for(i=0;i<20;i++){} } function a(){ for(var i=0;i<10;i++){} for(var j=0;j<20;j++){} }
型推論的にどうせ外に出すなら var i=0がベスト
>>543 /[a-z]/.exec(string)
while(true){}の代わりにloop{}が欲しいと良く思う
for外で参照するんなら定義も外で、しないのならfor文のとこでってしてる。 一緒なんだけど、ブロックスコープがないことを知らない人にでも違和感がないようにと。 デメリットもなさそうだし。
>>580 一個や二個ならいいけどそれ以上だと読みにくいでしょ
んで答え分かる奴は1人もいないと
ちなみにこの問題、今日のクックパッドのトイレで出題されている問題らしい
答えって何やねん
ごめん今日じゃなくて先週でてた問題だった
他の言語だと、重複宣言は大抵エラーになるから、 JavaScript でも重複は避ける習慣にしてる。
入っとくけど作法の違いを聞いてる質問じゃないからね
言っとくけど作法と習慣は違うからね
var a; a =1; var a; ってたまにやるけどやめたほうがいいんですか? 変数aを空っぽにするためにたまーにやるのですが
>>514 ありがとうございます、動きました!
確かに古いんですが分かりやすく、これでほとんど終わりなので
最後までやってみます。
ちなみに、入門書にはダブルクオートで囲ってないんですが
誤植でしょうか?
今までもdocument〜は囲ってなかったと思うんですが。
なぜダブルクオートで囲わなければいけないのか教えてくれると助かります。
a = null;でいいじゃん
配列を破壊的にフィルターして削る方法はないですか? 非破壊的な方法しか見つからないのですが破壊的な方法を伝授してください
>>591 http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/intro/sgmltut.html#h-3.2.2 「属性の値を引用符で囲わなくてよいケースもある。」の段落を参照
今回は空白やアスタリスク、イコールが含まれているので、クオートで囲まねばならない
514の後半で指摘した部分について
・<script type="text/javascript">
・name属性の代わりにid属性を付けてdocument.getElementById('myimg').src
・setTimeoutの第一引数は文字列を渡すと、その度に再パースが必要になる(無駄)
関数オブジェクトをそのまま渡してsetTimeout(changeimage, 1000)とすべし
特に<script language="javascript">と書いている本・サイトはそれだけで古いと判断していい
>>593 var ary = [1, 2, 3, 4, 5];
var i = ary.length;
while (i--) {
if (ary[i] % 2 === 0) {
ary.splice(i, 1);
}
}
alert(ary);
oh...
letが使えれば
>>580 とかのは解決するんだけどな
現状使えない(使えても限られてる)し
>>575-576 のがベスト
>>590 それ空になってない
>>593 [].filter(function (value,index,thisArray) {
});
こんな感じで引数くるからthisArray書き換えれば良いよ
>>594 よくわかりました、本当に参考になります。
ありがとうございます。
本も最近のものをもう1冊買ってやってみようと思います。
>>598 前から順番に処理している最中に配列の要素を取り除いてしまうと
次に処理すべき要素をスキップしてしまう
後ろから順番に処理しなければならない
今年中にサイ本の第六版が出るんじゃないの?
>>600 立ち読みして理解できそうならパーフェクトJavaScriptを勧める
あれ、そんなに良いの?
基本を知るには良い。けど微妙な部分もあるよ。
Node.js、WebSocket、HTML5 絡みの本があんまないから、 ちょっと興味あるんだけど。 3300円ちょいなら他のオライリ買ってしまうかな…。
Node.js、WebSocket、HTML5 ここらよりES3と5をそれなりに深く知るって感じの本。
>>523 ありがとうございます。
調べて試してみましたが、firefoxではmetaタグでキャッシュ無効にしてもスーパーリロード扱いにはならないようです。
ページが更新されたとき、常に強制的にスーパーリロード扱いにするような方法ないでしょうか?
調べたところ以下のような数秒ごとにスパーリロードさせる方法は見つかったのですが上記の希望の方法は分かりませんでした。
<body onload="setTimeout('window.location.reload( true)',9000)">
どなたかお分かりになるかた宜しくお願いいたします。
608 1.Cookie使う 2.全画像を動的に読み込む 3.HTMLマニフェストを上手く使う
611 :
593 :2012/01/23(月) 21:04:22.45 ID:???
すごいな勉強になりますよ ありがとうございます
ES5の教本って無いですか?
613 :
608 :2012/01/23(月) 21:59:27.79 ID:???
何度もすみません。あれから調べていたら以下のような対策ぽいことが書いてあるページがでてきたのですが
http://www.parts-price.com/wp/?p=21 以下とおなじような効果をJavaScript等でHTMLに記述して実現する場合どう書いたらいいのでしょうか??
if (Ext.isGecko) {
var iframes = document.getElementsByTagName('iframe');
var count = 0;
var loaded = false;
for (var i = 0; i < iframes.length; i++) {
iframes[i].onload = function () {
count++;
if (count >= iframes.length-1 &amp;&amp; !loaded) {
loaded = true;
//ここに本来実行すべき処理を記述
YAHOO.util.Get.script(urls, myHandler);
}
};
}
} else {
YAHOO.util.Get.script(urls, myHandler);
}
>>603 ありがとうございます!
ちょっと見てみますね。
>>613 何をやろうとしてそんなブラウザ依存の激しそうな解決策を選んだのか
何をやろうとしてるのか言えば別次元の解決策を示せるかもしれんよ
>>613 キャッシュ制御なら If-Modified-Since を適切に扱えるようサーバサイドで処理するのが確実です。
JavaScript で制御すべき内容ではないかと。
やろうとしてることがググって出てこない時はなぜ出てこないか考えたほうがいい 検索ワードが間違ってるのか、別の解決策があるのか、あえて先人たちがしなかったからなのか。
If-Modified-Sinceかnode.jsでサーバ構築するかどっちかしか選択肢はありませんよ If-Modified-Sinceも結局はクライアントからヘッダー送信するので完全を求めるならnode.jsですね それ以外の方法は調べても出てこないのでこの2つのどちらかを選ぶしかない 無料サーバとか安いレン鯖使ってるならnode.jsは使えないから選択肢は減るけどね
>>618 そのページに解決策がポストされてるじゃん。
別のname 属性つければ直るんならそっちの方がいいと思う。
つか、かなり前なのにbugzillaには報告されてないのか。
fx1.0のころからある現象だよ、遭遇したことがあるからよく覚えてる。
いま9.0で
>>618 を見たけど何度読み込んでもDOMの内容と一致してるけど
>>621 ifremaの数が一定以上増えるとnama付けても無駄でした。
>>622 少数だと大丈夫なんですが、9.01でテストしているんですが、やはり一定数を超えると入れ替わってしまいます。
他のブラウザだとならないです。
Googleが表示されないと思ったらそういうことか、ログイン中だったからCSRF対策とかで表示させないようにしてるのかと思った
setTimeout('hoge()', 1000); は setTimeout(hoge, 1000); でいいよ 前者だと実質evalが走る
627 :
626 :2012/01/24(火) 01:14:25.01 ID:???
間違えました
お、おう
> 前者だと実質evalが走る ちょっとどういうことよ
ちょっと自分でもよくわからなくなったのでもういちどFirefox 9.0.1でテストしてみました。 まずメモ帳に適当にそこらのサイトの広告ででてたiframのタグ(変化が分かりやすいように2種類の大きさのもの)を コピーしてきて交互に複数貼り付けました。 ↓ そこでhtmlとして保存してFirefox 9.0.1で開きました。 ↓ そしてHTMLファイルからタグを数個削除してFirefox 9.0.1で通常の更新ボタンでリロード ↓ 表示位置が入れ変わりぐじゃぐじゃでシフト+リロードでスーパーリロードするまでは変わらず。 IE、operaなどでは通常の更新のみでも正常表示でした。
1度スーパーリロードさせて正常表示された後は、普通のリロードを何回しても正常表示のままですが やはりiframeの数が増減すると位置が入れ替わってしまうようです・・・ iframeが複数あって 通常のリロードをした時以前と比較してその数が増減している場合 各々の表示位置が入れ替わったり重複するようです。 各々にnameやidを指定しても同様でした・・・
>>630 id振ってみた?
わかってると思うけどidはそれぞれ違う文字列にする必要があるよ
633 :
618 :2012/01/24(火) 01:47:14.83 ID:???
>>632 nameもidも各々違う文字列でやってみましたが駄目でした。
>>631 苦肉の策だけどこんな感じではどう?
1.HTMLには必要な数だけurlの指定されてないiframeを設置する
2.JSには上から表示したい順のurlの配列を入れる
3.DOM構築後、配列のな紙を順番にiframeに適用していく
635 :
618 :2012/01/24(火) 01:51:20.67 ID:???
>>634 ありがとうございます。とりあえず今日は寝て
夜にでも試してみます。
キャッシュが関係しているなら、動的なページにしてみるとか。
639 :
618 :2012/01/24(火) 02:29:38.19 ID:???
>>638 <iframe name="iframe1" src="
http://auctions.yahoo.co.jp/ " width="160" height="250" frameborder="0" scrolling="no" marginwidth="0" marginheight="0" allowtransparency="true"></iframe>
<iframe name="iframe2" src="
http://auctions.yahoo.co.jp/ " width="160" height="250" frameborder="0" scrolling="no" marginwidth="0" marginheight="0" allowtransparency="true"></iframe>
<iframe name="iframe3" src="
http://auctions.yahoo.co.jp/ " width="160" height="250" frameborder="0" scrolling="no" marginwidth="0" marginheight="0" allowtransparency="true"></iframe>
<iframe name="iframe4" src="
http://www.yahoo.co.jp/ " width="120" height="90" frameborder="0" scrolling="no"></iframe>
<iframe name="iframe5" src="
http://www.yahoo.co.jp/ " width="120" height="90" frameborder="0" scrolling="no"></iframe>
<iframe name="iframe6" src="
http://auctions.yahoo.co.jp/ " width="160" height="250" frameborder="0" scrolling="no" marginwidth="0" marginheight="0" allowtransparency="true"></iframe>
<iframe name="iframe7" src="
http://auctions.yahoo.co.jp/ " width="160" height="250" frameborder="0" scrolling="no" marginwidth="0" marginheight="0" allowtransparency="true"></iframe>
これをHTMLファイルとして保存して1度firefoxで開き、任意のタグを削除した後リロードすると高確率でバグります。
Firefoxのiframeくそおも <object>だとバグらないっぽい?
ずいぶん yahoo には迷惑な内容だなw
削除するかわりに表示をしなくするだけだとどうだろう?
クエリにてきとーな文字列つけちゃえば。
chromeでヘッダーの内容を見るのはどうやるのでしょうか?
一昨日制作初心者用質問スレで下記質問をさせて頂きましたが 自分の質問内容が悪いのかご回答頂けなかったので、こちらにて再度質問をさせて頂きます。 CMSを使用してサイトの制作を行っています。 テンプレート?みたいな形で変数を入れるとその部分に特定の要素(テキストと画像)が挿入されるのですが 一部分だけ上記の変数を使用してテキストのみ表示させたいです。 CSSは使えるのでclass指定やJSなどを使用して特定の画像を消す事は可能だと思うのですが 同じ変数が同一ページ内でいくつも使用されているので不可能です。(他の部分では画像も必要です。) phpなどを使わずCSS又はJSで特定のbox内のみ強制的に挿入される画像を削除する事は可能でしょうか? 色々悩んだのですが、自分ではどうにも思いつきません。 先輩方ご教授頂けませんでしょうか。 宜しくお願い致します。
向こうのスレは見てなかったからいま確認してきたけど こっちで聞くのなら向こうに一言書くべきじゃないのか?
50レスくらい流れちゃったんならいいんじゃね? 見てないけど
695 名前:Name_Not_Found[sage] 投稿日:2012/01/23 たかが9時間でマルチかよ
>>654 CMSが何かはわからないけど
そのテンプレートを使わずにテキストエディタで書けばいいだけじゃない?
>>646 >>648 >>649 申し訳ありません。事後ですが書かせて頂きました。
>>647 >>650 自社開発のCMSになります。
ガチガチと書いていけばいいのですが
変数の要素が時間帯などによって可変するのでテンプレートを使用せざるおえない状況です。
※検討違いな回答でしたら申し訳ありません。
652 :
Name_Not_Found :2012/01/24(火) 14:11:18.26 ID:UcdKy8Y8
>>644 レンチ > ツール > デベロッパーツール > Networkタブ
>>651 特殊過ぎてそれ使ったことある人しか回答できなさそう
少なくとも俺には何がしたいのかほとんどわからん
>>645 特定のboxにclassをつけて画像にcssでdisplay:noneでもやっとけ
>>651 HTML見れないとなんとも
多分できるだろうとしか言いようがない
>>653 Network開きながら対象の通信を行なって
出てきたものをクリックしてHeadersを見れば詳細は解るぞ。
こんな感じで
Request URL:
http://www.studyinghttp.net/header Request Method:GET
Status Code:200 OK
Request Headersview source
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset:UTF-8,*;q=0.5
Accept-Encoding:gzip,deflate,sdch
Accept-Language:ja
Connection:keep-alive
Host:www.studyinghttp.net
Referer:
http://www.studyinghttp.net/ User-Agent:Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7
改行多すぎだからレスポンス省略
>>651 CMSもピンキリ(JSを高度に扱えるものはCMSを越えてるかも)だけど
所詮CMSだからあんまり高望みしないほうがいい、HTMLを直接編集できるんならそれで頑張るべし
CMSといえばCrusoe。
ナビゲーションを作っているのですが
jQueryで下記の処理をしたいのですがどうやればいいのか教えてください。
htmlファイル
a.html
b.html
c.html
d.html
とあった場合に
各ページで共通でナビゲーション
<a href="a.html">Aページ</a>
<a href="b.html">Bページ</a>
<a href="c.html">Cページ</a>
<a href="d.html">Dページ</a>
があります。
ここで現在開いているページのアンカーを外したいのですがどうやればいいのでしょうか?
現在のページは「jQuery-URL-Parser」
https://github.com/allmarkedup/jQuery-URL-Parser を利用して取得できています。
$(function(){
var url = $.url();
var filename = url.attr('file');
});
jQueryはスレチ
>>656 そこか1
ヘッダー見れました
ありがとう感謝です
相手すんな
いやいや。一般にAという生きているスレとBという機能してないスレが あったとして、本来Bの話題をBが機能してないという理由だけでAに振って いいわけがないだろ?その振る話題がAの話題としてふさわしいという 前提は常に必要だと思うぞ。それが守れないのなら困ったちゃんだよね。
>>662 お前の言ってることは正しいが
煽りだしたら負け、荒らしと一緒
再々言ってるが回答者は質問者以外に反応するな、荒れるから
>>662 機能してないってどういうこと?
今からこっちで答えるからって誘導して有効に使えばいいだけじゃないの?
誰かが積極的に使い始めて活気づくまで使わないつもりだから
とか調子乗りすぎに思える
自分で機能させろよ
スレを立ててみた ↓ 人が集まらない ↓ javascriptスレに戻ってくる
と
>>660 が必死です。
とりあえず
>>1-4 をどこにjQueryの質問はそもそも禁止と書いてあるのか説明してもらおうか?
それは積極的に使おうとしてないから 1にちゃんとリンク貼って誘導すればいい
最近(特にjQueryの)質問数が増えてきてるしスレの流れ速いし ちゃんと答えられないで流れる質問も増えてきてるし せっかく立ってるスレを使えばいいと思うけど
>>669 何故かプログラムカテゴリにあるのも問題。
>>659 その処理注意した方がいいぞ。
現状index.htmlが無いみたいだけど
index.html使うときにindex.htmlをつけないで/で終わるURLの時にはfilenameの中身は空になるから
その場合の処理は追加する必要がある。
このスレに限らないけど専用スレがある場合は専用スレで取り扱うのが2ちゃんの使い方です
とりあえず今はわからんがいつかは専用スレが必要になるときが来るであろうという事は確か それが今かどうかの議論がこれから始まり、議論の是非に発展し、evalの話で終結すると予想 ではどうぞ↓
つうか今後jqueryスレを立てようと思ってる人はライブラリ総合スレとして立ててね どうせ過疎るんだからprototype.jsとかmootoolsもいっしょにやれば
まとめると立てた奴がアホだったんだろ 使えないスレなら立てるな 立てたスレはキッチリ使うよう善処しろ
テンプレとeval専用スレ立てればこのスレの速度もかなり落ちると思う
evalスレ立てるんなら カンマ・セミコロン、スペース・コーディングスタイル、クロージャ、変数宣言 とかも立てなくちゃ
JavaScripterZ
光るスクリプトを突きぬけFLY AWAY
まとめ お前らはみんな悪くない 自由過ぎるJavaScriptが悪い ってわけでみんなこれからはDart使おうぜ!
お前ら懲りずにまた1でも0でもない0.5くらいの事を 1か0かにどうにかこうにか決着付けるために争ってんのかよw ほんと惨めだなww
人人 (iii) (iii) < ウ > 人人 // \\ < オ > < イ >// / ̄\ \ \ < オ > < ェ >\\ |(゚) (゚) |/ / < オ > < ス > \\|. ∩..| / < オ > < ! >. \\∪// < オ > < イ > (  ̄ ) YYY < .ェ > .. | | < .ェ > .. | | < ス > .. | | YYY / /\ \ / / \ \ 人人 人人 < ウ > /~~T~~\ <ウ .> < オ > / / ̄\ \ <オ .> < .ォ > | /|(゚) (゚) |\|< ッ > < オ > //|. ∩ |\\ YYY < オ >. \\\∪/// < ォ > |\\ //| < オ > | (iii) (iii) | YYY || || ..(__) (__)
windowsを使っているのですが、JavaSctriptを埋め込んだHTMLファイルを作成して これをmacの人に見てもらおうと思っているのですが そこで2つ質問があります 1つ目は このHTMLファイルをmacで見ると、文字化けしたりする恐れがありますか? ファイル名は日本語を使わない方がいいのでしょうか? 機種依存文字は@などは知っているのですが、 他にはどのようなものがあってJavaScriptやHTMLで使うべきではないのでしょうか? 2つ目は このHTMLファイルは、どのバージョン以上のmacのOS(とJavaScript)だったら確実に動くでしょうか? windowsで作ったファイルをmacの人が見た場合に どういう不具合があるのか全くわからないので ウィンドウズ←→macの互換性についてなにか参考になるサイトがあれば教えてください よろしくお願いします
通報したわ
var a = [1,2,3,4,5,1,5,3,2,4,5,1,2]; この配列から特定の値が最後に現れるインデックスを取得する方法を教えてください 例えば1ならインデックス11を求めたいのです
forで配列の長さ分くりかえして 最後の1文字取り出して正規表現じゃない?
windows用のV8バイナリを落とせるところありませんか?
$('#hoge') という要素が存在する場合はtrue、無い場合はfalseになるようにしたいのですが if($('#hoge'))だと毎回trueになってしまうので、何か良い方法とかないでしょうか?
この流れでjQueryの質問する神経がすごいな
694 :
Name_Not_Found :2012/01/24(火) 17:48:31.10 ID:VAIXbV6j
>>692 lengthみればいいじゃん
いっぺんjQueryの使い方をよく読んだほうがいいと思う
jQueryのオブジェクトは配列っぽいと思っておくと理解が早くなる。
JSの正規表現についてまともな解説してるサイト教えて
perlの正規表現とほぼ同じだからそれをあたればいい
]の前にも\
ネットショッピングを題材にした入門書で勉強中です。
「ご注文内容と合計金額の確認」というボタンを押すと
ドロップダウンメニューの商品個数と小計のテキストエリア内に表示されている金額
が下のテキストエリアに「注文内容」として表示されるはずなんですが表示されません。
http://ideone.com/ZYLYp 〜試したこと〜
・表示する内容がおかしいのかと思い、変数 disp1が表示内容のため
alert(disp1); で内容を表示させようと思いましたがうまくいかず・・・。
・行ごとにalert("test");を書いてみたが最後の行までは動いている様子だった。
プログラムが初めてなのでデバッグの仕方がおかしかったらご指摘お願いします。
>>699 実行してみたけどdisp1が未定義って出る
なのでdisp1をdispにする
デバックはFirefoxかChromeでWebコンソール開きながらページを開くとエラー箇所がでるよ!
jQueryjQueryで思ったんだけどさー この前どっかのブログで「onclickは使うな!$("#hoge").click使え!」みたいなのあったけど onclickじゃないと引数とか使えないよねー PHPと組み合わせてやってるとvalueとかinnerHTMLだけじゃダメなんだよなコレが
それはお前の技術力が無いからだ
>>701 onclickを使うな、は正しい
click()を使え、はカス発言
どうしてもjQueryしか使えないならon()を使え、が正しい
onは1.7からだしバージョンが解らない相手にはbindあたりが無難
うるせえなjqueryの話だまれ
jQueryなんて使ったことないんだが 実装するならそのときの最新バージョン使うもんじゃないの?
実装したときはそのときの最新バージョンでも
708 :
Name_Not_Found :2012/01/25(水) 13:52:06.52 ID:znVpIVMv
>>701 >onclickじゃないと引数とか使えない
いちおう質問すれだから初心者がよく見るので
さらっと嘘書くのはよくないと思うの
へー onclick="aaa(this);" みたいなのをjQueryではどう書くの?
煽るようにして回答を得ようとするタイムの質問者か
711 :
Name_Not_Found :2012/01/25(水) 14:18:51.06 ID:znVpIVMv
>>709 $(objct).click(function(){})
thisならこれでいいよ。
713 :
Name_Not_Found :2012/01/25(水) 14:35:39.03 ID:znVpIVMv
>>701 HTMLのonclick属性としてイベントハンドリングすること自体は悪いとは思いません
ただ、
>>701 ,709はイベントハンドラで実行する関数に引数を渡す方法は
onclick="aaa(this);"
のように「関数名(引数)」の書き方をしかない、と勘違いしています
これは初心者は特に陥りやすいものです。自分もそうでした
イベントハンドラで大切なのは、eventオブジェクトの扱いです
jQueryのbindやそのおまけのclickメソッドなどは
>>712 で書かれているように、関数内のthisでアクセスできるように作られていますが
紐解いていけば、eventオブジェクトからその要素を特定しています
と補足して見ました
onclick属性って非推奨とか言われてなかったっけ? それならそれできちんと正しい代替手段があるはずだと考えて 調べてみるのが正道だと思うのよね
質問です onclick使うなって言われてますが onclick=hoge(123,abc,ddd) onclick=hoge(223,ui,aaa) とか使い分けが複数ある場合はどうすればいいのでしょうか?
716 :
Name_Not_Found :2012/01/25(水) 16:54:34.65 ID:znVpIVMv
>>715 引数が何になるのか、なぜそうなるのかってのを
クリックされる要素に絡めてどこかに定義しておけば良いです
>>716 ありがとうございます
ううむ、難しいですねー。id用意して変数を用意しておくとかがいいのかな
>>715 addEventListenerで複数登録しておいては?
719 :
Name_Not_Found :2012/01/25(水) 17:10:43.69 ID:znVpIVMv
>>717 onclick属性でHTMLに書く場合
要素と引数を結びつけて書けるのがメリット
本来JSとは関係ないHTMLに、スクリプトの一部を書かなければならないのがデメリット
onclickを使わない場合はそれが逆な感じ
onclick使わない場合について、引数に規則性がなく任意の固定値になるのならば
どうせ要素にDOMアクセスしてからイベントリスナを設定するわけだから、例えば
var obj1 = {
elem : document.getElementById("hoge"),
arg0 : 123,
arg1 : "abc",
arg2 : "ddd"
};
みたいに、まとめて書いておけばいいんじゃないかな
>>719 その場合だと$('.hoge').clickの場合どうなっちゃうんでしょうかね?
HTMLで書くと
class=hoge onclick=a(123,a,b)
class=hoge onclick=a(223,g,f)
class=hoge onclick=a(422,j,k)
となるのですが
そろそろ名前欄にレス番いれるかID出してもらわないと困るなぁ
絶対真似するな的な超非推奨方法なら知ってるが <td id="hoge"></td>ってあるだろ? <td id="hoge" value="aiueo" ></td>って無理矢理やって $('#hoge').live('click'function(){ $(this).attr('value') })って無理矢理やるとaiueoが取得される
コール時に引数を渡す必要性が全く無い
724 :
Name_Not_Found :2012/01/25(水) 18:25:57.80 ID:znVpIVMv
>>720 要素が特定できる何かを用意する必要がありますな
>>722 原理的には同じ事だけどdata-*属性を使うと今っぽいすね
>>713 どうでもいいツッコミだけど、jQueryはthisに渡す要素特定に
eventオブジェクトなんて使っちゃいねぇ
dataって非推奨だっけ?
727 :
Name_Not_Found :2012/01/25(水) 18:44:58.48 ID:znVpIVMv
728 :
Name_Not_Found :2012/01/25(水) 18:45:59.86 ID:znVpIVMv
あ、jQueryオブジェクトの方からか ごめんクビ吊ってくる
いや、だからどうでもいいことだから
どうでもいいと思うんならマジ黙っとけよ お前の勝手な価値観でスレの流れを妨害するな
だからonclickで引数を渡さなければできない処理なんて皆無なんだから引数を渡せるのが利点にはならないし jQueryでどう書けるかなんて場合によっていくらでもあるんだから答えなんか出ねーよ
オレもそう思う
var str = "a1あb2い"; この文字列の長さを6文字としてカウントする方法はありませんか? lengthじゃできませんでした
NN2とか使ってんじゃなかろうな
>731=732 屁理屈はいいから黙っとけよ、迷惑
aaaaaaaaaaaaaa 指定したインデックス(3〜7までとか)の文字色を変えることって出来ますか? 要素で文字列を囲む以外で。
>>733 何をもって出来ませんって言ってるんだ。それで表示されるlengthは6だぞ。
確かunicodeベースだったはず?だから\uFFFFを超える場合はどうなるかは忘れた
詳しい人が多分補足してくれるだろ
>>736 3-6文字目を切り出して要素で囲んだりはできるけど
それ以外で色って無理だろ
HTML に属性としてイベント書いた場合の他と異なる特徴は、すk
>>739 色々方法はあるだろうけど
<input type="hidden" id="id1Param" value="123,a,b">
<input type="button" class="hoge" id="id1" value="ボタン1">
<input type="hidden" id="id2Param" value="223,g,f">
<input type="button" class="hoge" id="id2" value="ボタン2">
<input type="hidden" id="id3Param" value="422,j,k">
<input type="button" class="hoge" id="id3"value="ボタン3">
$(".hoge").click(function() {
alert($("#" + this.id + "Param").val());
});
なんてのはいかが。
hiddenフィールドをボタンのすぐ後に置くとかいうルールにして
alert($(this).next().val());
でもいいかも。
すべての要素にvalue設置できればいいんだけどねー titleをvalueの代わりにしてもいいんだけど、表示されて不恰好だしぃ
>>733 jsファイルをEUCとかのコードで作ってるとか?
でもそれだと strを表示すると化けるし気づくか。
>>733 文字コードに関係なく6になる筈。
どうやったら6じゃなかった?
bindなんて糞はアホしか使わない
keydownのイベントを登録したとき aが押された場合にaをしゅとくしたいんですが これはできます
成功の報告はいらないです
つづき 問題はキーボードをカスタマイズした場合です uを押したらaが入力されるようにカスタマイズしたPCの人の場合でもuを押したらaのキーコードを取得することはできますか?
>>748 733の"a1あb2い"なら、103の理屈で6になる筈。
ならないのは、何をしたらならなかったのか。
マジでperlとJSは正規表現が同じだった。正規表現ってすごく便利だな。 まだ、\wとかしかしらんけど。
便利なようで実はそれほどでもない もうちょいかゆいところに手が届けばいいんだけどね
同じというか、JavaScript が Perl の正規表現に倣ってるんだけどね。
6文字にならない具体的なコードを貼ってもらえばいいじゃん。普通なるから。
<a class="a" data-message="あらしは">hoge</a> <a class="a" data-message="ちゃんと">fuga</a> <a class="a" data-message="スルーしよう">poge</a> <script> jQuery(function($) { $('.a').click(function(e) { alert($(this).data('message')); }); }); </script>
alert("𠮷𠮷𠮷𠮷𠮷𠮷".length); つちよし(吉の士が土)×6文字分 lengthは12
うち、xpやけん、そんな文字表示できひんわ。
第一 > ஷஷஷஷஷஷ これが何文字なのか分かりづれーよw
だめ、全部カエルに見える。
JSON.parse()って使えないブラウザとかバージョンとかあるのですか?
フォームの内容を取り出すようなJavaScriptライブラリはありますか。 たとえば <input type="radio" name="val" value="foo" /> <input type="radio" name="val" value="bar" checked /> とあった場合、document.forms[0].elements だと上の2つともとってきますが、 このうち checkedになっているものだけをとりだしてくれるようなライブラリです。 やりたいことは、ブラウザが送信する内容と同じものをとりだすことです。
>>761 querySelector('[name="val"]:checked')
>>761 jQueryの.serialize()か.serializeArray()
>>762 ,763
ありがとうございます。jQueryのserialize()がまさに求めていたものでした。
>>755 var a = String.fromCharCode(0xd842, 0xdfb7);
a = a + a + a + a + a + a;
alert(a);
alert(a.length);
な感じにしたほうが、わかりやすいんじゃね?
4バイト文字のlengthが2になるのってブラウザのバグ?
UTF-16に4バイト文字があるという謎の状況を説明してみろ
サロゲートペアでggr
> var str = "a1あb2い"; > この文字列の長さを6文字としてカウントする方法はありませんか? > lengthじゃできませんでした 元の質問はこれなんだよね。これが6文字でなく表示されるサンプルコードを リクエストしたんだけどな。
だよなぁ。例と違うじゃないか。 実際の文字を提示してれば、サロゲートペアの問題だって判るのに。
var c = 0; "????fff".replace(/(?:[\uD800-\uDBFF][\uDC00-\uDFFF])/g,function () {c++;return '';}).length + c こんな感じ?
すいません
javascriptで2Dアクションを作りたいのですが マリオってジャンプボタンを押したらジャンプしますよね このときジャンプボタンを長押しすると高く飛べ、短く押すと小さく飛べますが これはどのような仕組みなのですか?
オブジェクトのプロパティに関する質問です。 Chrome16のコンソールでの表示です。 >Object.p undefined これはObjectの中にpは作られているんですか? var pとなっている感じなのかそれともまだないのか・・? また >Object.p = 1 1 >Object.p 1 ということはどのオブジェクトにも後から新たに変数を追加できるということですか?
jQueryで<td>の値を取得できるのはtext()だけですか?
778 :
Name_Not_Found :2012/01/26(木) 14:32:48.71 ID:Ttyl1KdQ
ECMAScript的にも
>>103 の2文字として返すってのが正しい実装なの?
そうよ。
そのうち文字数返すプロパティとか追加されるのかな
>>776 最初の
>Object.p
この段階では作られない。
>ということはどのオブジェクトにも後から新たに変数を追加できるということですか?
基本的にはそう。
だけどES5あたりからObject.sealやらfreezeやらpreventExtensionsが入って
これらの処理がされてると追加でなくなったりする。
それ以外の挙動はそれぞれのメソッド調べて
ついでにObjectに追加するという事は
その他全てのオブジェクトに対しても追加する事になるからね。
>keydownとkeyupの時間。 こんなの取得できるの?
var data = [ { id: [1, 2, 3, 5, 4], name: ['hoge', 'fuga', 'piyo', 'bar', 'foo'], date: ['2012/1/24', '2012/1/25', '2012/1/26', '2012/1/28', '2012/1/27'] }, { id: [1, 2, 3, 5, 4], name: ['hoge', 'fuga', 'piyo', 'bar', 'foo'], date: ['2012/1/24', '2012/1/25', '2012/1/26', '2012/1/28', '2012/1/27'] } ]; このような構造のデータがあります。 ひとつひとつのハッシュごとにidの数値でソートしたいのですが どのようにすればできるでしょうか?
>>786 ごめんたしかにそうだった
>>785 ごめん訂正する
Object.a = 1;
この時はFunction.a等他のオブジェクトには追加されない
Object.prototype.a = 1;
こうした時に全てのオブジェクトに追加される
趣味でjavascriptをやっていたので、今年からjavascriptをメインとして使う企業に就職できたのですが javascriptのプログラマーってインドア派や見た目キモオタが多いのでしょうか? 自分の周りはそういう人間ばっかりだったのですが、なんだかwebプログラミングってデザイナーとかオシャレの人が多いイメージで
ES5で動かないブラウザってie8ですよね? 他の4つの主要最新ブラウザならバリバリ使ってもOKですか?
何その偏見 イケメンもいればブサメンもいるでしょう
>>789 華やかなのはイメージばかり
女の子は多少多いはず・・・
>>789 あの先輩
どういう求人見て見つかりましたか?
javascriptメインといっても実際は全然違うことさせられるぞ スマホ案件のためにjavaとかやらされるんだぜ
雇用主がjavaとjavascriptの区別がついてないのか
>>795 JavaScript出来る奴ら集めてJavaやらせるとかw
プログラマの世界なんてそんなもんよ JavaScriptなんてフロントエンドだからスマホ向けのフロントエンドとして最適なのは ネイティブアプリであってJavaとかObjective-Cとかやらされるのだろう ものにならんやつはどんどん首切りとはいかないのが日本社会だから そこはまぁ安心していいと思う
会社からクビになることはなくても、 デスマの原因が自分となるとだんだん欝になって、 そのまま退職しないでずるずるやると首切りならぬ首吊りになるから注意な。
穴を開けたら即逃げ出せ
>>794 客先常駐ばっかでブラック企業ばっかじゃねえか
「it 求人」でググってトップに来たサイトだから仕方ない
俺新卒で入社するときphp+mysql+javascriptって聞かされたのに 2年目には「アンドロイドアプリ開発お願いね♪」ってやられて今javaやってんぞ IT企業の転職率は異常。放浪者みたいに転々としてる実力ある奴とかいるし
804 :
Name_Not_Found :2012/01/26(木) 19:33:25.30 ID:20R02GI0
たとえばYouTubeの動画のページを表示してWebコンソール等で document.getElementById("movie_player").playVideo() などとすると動画を再生したりできますが(YouTube API) こういったFlash等のプラグインによって追加されたメソッドやプロパティの一覧を取得するにはどうすればいいですか? この要素をFirefoxのDOMInspectorやChromeの「要素の検証」のElementsタブでプロパティ一覧を見ても playVideoメソッド等は載っていません。 for inで列挙しようとしてもだめでした。 でもjavascriptから使えます。
30代未経験で入るのはキツイですか?
>>794 のサイトの求人に応募してきた。面接楽しみだなー^^
>>787 IDの数値でソートってどういうこっちゃ?
data[0].id[0]の1に2012/1/24が対応してるとからそれに沿ってほかもソートって感じ?
808 :
Name_Not_Found :2012/01/26(木) 20:02:07.97 ID:R8OFXYqf
>>803 うちはだいたい
「来月あたりRubyの案件はいるから勉強しといてねー」と
前降りしてくれるから助かる
勉強の途中で外注先探しに方向転換しちゃったりもするんだけど
var aa=90,bb=99; document.writeln(aa,bb); という書き方は文法的に正しいのでしょうか?
いくつかの言語で普通に使う書き方である
>>805 前職と勉強する気力と習得度合いとか次第じゃね
20過ぎたニートだけど、phpとJSの勉強して、将来起業してやるぜ
>>811 前職はITとまったく関係ない職業なんですが相当の力があればいけますかね?
>>813 いけると思う
前職が全く関係なくても業務知識なんぞを生かせるところにいけば良い
事前に見せれる作品は作っておく必要はあるが
職歴があれば転職は可能 ただ30過ぎてプログラマーってのは・・・ SEとか次のステップに進んでるころだよね プログラマーは20代限定という風潮が業界では濃い
流れなので。自分は基本から概要詳細製造単体結合総合導入運用一通り入社1年で経験したな 小さい会社だからかプログラム専門のPGみたいなのは居なくてみんなSE(Software Engineer)
何歳になってもプログラマーでいたい。 SE業務も楽しいけどコード書いてる方が楽しい。
ていうかそれ全部入社1年で普通に経験するんでは?
>SE(Software Engineer)
なんか騙された気分だ
>>817 っ独立
>>818 独立なんてしたらそれ以外の業務や心労やらの方がでかいのを知ってるから
する気はないな・・・
まぁプログラムは趣味でやればいいよね
仕事のjavascriptは楽しくねーぞとだけ言っておく jQueryでアニメーション作ってうわーい!なんてのは無い!
jQueryでアニメーションってよく聞くけど Flashアニメみたいのが作れるってことなのかな? それともsetIntervalで要素をabsoluteにして動かすとかそんなレベルのアニメーションのこと?
プログラム系の仕事するならフリーランスでやるわ。
javascriptの勉強したいんだけど 必要なものってメモ帳くらいなん?
dreamweaverとかあれば多少楽になる程度 後は当たり前だけどブラウザとかないと動作確認できない メモ帳があれば他人のPCでも開発できるぞ
差分比較、入力補完、自動インデント、制御文字表示、矩形編集、 正規表現検索/置換、指定行にジャンプ、ウィンドウ分割、行複製 このくらいあれば、エディタは何でも良い。
document.getElementById('nm').innerHTML=('comment') は$('#nm').html('comment')ですが document.getElementById('nm').innerHTML+=('comment') ってjQueryでどうやるのですか?
それぐらいならHTAとJScriptでJavaScriptエディタが作れるな
800超えたんで、テンプレ論議あれば今どうぞ。テンプレ廃止論とかも?
wikiつくってくださいよ そこにいろいろ情報のせていきまsんか
wiki見ろで終わる風潮になっちゃうからwikiはちょっとなぁ・・・ 繰り返しみたような質問でも繰り返しやることが重要なこともあるから
○○a○とか特に重要だよな
anal?
>>832 scat で画像検索したらエラいことになったでござる。
>>824 エディタは、予約語の色分けをしてくれる物の方がいい。
初学者なら特に。
ってか最近技術が進歩しすぎてる気がする。 なんかついていけてない。html5がもうじき規格が決まって 次世代のwebの規格になってしまうし。死ぬまで新しいことを 覚え続けないとダメか。10年後のJavascriptがどうなってるか なんて予想できないな。
googleさんが頑張り過ぎてるからね
10年前か 黒歴史HP作ってたっけ あの頃は自称ハッカーで「ウイルス」と称して無限アラートを中学の授業中作ってたなぁ あんな馬鹿がこんな立派になるなんて
ゆうすけのホームページ Sorry!This Homepage is Japanese only!! 1999/03/02から[000000135]人のお客様が訪れました(^^) キリ番を踏んだ人は必ず掲示板に報告してください!踏み逃げ厳禁!!! 現在の時刻は 午後3時23分です。おやつを食べたくなる時間ですね。 MENU せつめい プロフィール 管理人ゆうすけの生態はここから!! イラストコーナー ゆうすけの描いたイラストを展示(工事中) 100の質問集 いままで挑戦した100の質問集です ゲストブック 初めてきた方はまずこちらへカキコを 掲示板 誰でも大歓迎!お話しませう チャット 次回のチャット回予定・・・2月14日 リンクの冒険 リンク集です(爆)お友達のページへGO! 裏・ゆうすけのホームページへ
>>827 全く同じ構造になるのは
$('#nm').html($('#nm').html() + 'comment')
とか
$('#nm').get(0).innerHTML += 'comment';
でも、appendでいいんじゃね
>>843 これより
<Marquee>現在の時刻は 午後3時23分です</Marquee>
の方が個人的に破壊力がある
というか黒歴史サイト作ってたの俺だけじゃなかったのか
>>827 innerHTMLとhtml()の+=はその要素の中身を1から描写しなおすから
追加したいだけならappendをオススメする
847 :
Name_Not_Found :2012/01/27(金) 01:00:12.50 ID:x0agjE11
よくよく思い出してみると 数年毎に「最近は覚えること増えすぎて大変、ついていけるかな?」て思いつつも なんだかんだで何とかなってきたから 今後も大丈夫じゃないかなー、と楽観視することにしてる
じゃあテンプレは1行目とwikiと前スレへのリンクだけってことで
849 :
Name_Not_Found :2012/01/27(金) 01:06:32.51 ID:x0agjE11
>>841 中学生ならいいじゃんw
俺なんか15年前に大学で、雛形あきこの写真のおしりをクリックすると
テレビからサンプリングしたちょっとエロい声のWAVを
ポップアップウィンドウを開く、てのが最初に書いたJSだったんだぜ
さすがにそれは引くわ
リンクだけ作って「工事中です」
ブラクラよく作ったなぁ・・・
大抵のものはタスクマネージャで乙だったけどな
854 :
テンプレ案 :2012/01/27(金) 01:30:11.67 ID:???
前スレと同じで、関連スレはここに張らんと飛びにくいな
>>843 なんかなつかしいな
マーキーとかもあるよね
踏み逃げ現金とか今見ると糞笑っちまうよな
標準仕様入りしちゃったマーキー
HTML5からはいったんじゃなかったか?
そんなのJavaScriptでやれよww
>>859 CSS3のモジュール
2008年の勧告候補で止まってるみたいだけど
>>861 俺も長年そう思ってたけど
transitionを見るとmarqueeもありなんじゃないのかと、少しだけ思う
CSSではなくHTMLなのはアレですが
て、CSSなのか 知らなかった…
CSS2のtext-decoration:blinkを知らない奴がこんなにいるのか blink要素は中国の熱烈な要望でGeckoがしぶしぶサポートし続けたことも ガラケー時代には必須アイテムだったことも HTML5でやっと廃止できたからCSS3に追い出せたことも
点滅とかマーキーは今じゃJavaScriptさんの役目だろ
わり、marqueeとblinkが混ざったわ さっさとねてーよくそう
そんなのJavaScriptで寝ろよw
仕様に存在しなかったから、むしろ昔こそJavaScriptだった
まぁ仕事とかでJavaとかRubyやらされるとかって話になってるけど Javascriptの奥義は作りたいものを作りたいという気持ちだ。テニスの王子様究極の技、天衣無縫の極みと同じ 最初Javascriptに触れてalertループさせたり、背景の色を変えたりしたあの楽しさを忘れちゃイカン
Wikiに移行するというのなら、Wikiができて内容が入ってある程度更新される ことが確認されてからでないと。できもしない口約束だけで移行するのは反対。 だから現状のテンプレを維持する派。4レスなんてそんなに多くないよ。
そもそも、FAQが多くてしかたないから全部は別サイトに掲載ねといって削ったのが現状 だけど、別サイトの「FAQ全部」って見てる人いますか? 漏れはレス内に無いとなかなか見るまでの敷居が高い。
それは散々指摘したが一部のアホが強行して今の形になったんだよ
うまく行くかどうか実験するのはいいこと。うまくなければ改めればよい。 では、FAQすべてをレス内に戻すという提案については賛成な人はいる?
本当に困っていることがあるのでどうか相談に乗って下さい WebGLを始めようと思い、(日本語の)入門サイトを探しました いくつか見つかったのですが説明がとても難解でした で、それはまだ頑張れるレベルだと思ったのですが なんとどの入門サイトのどんな簡単なレベルの説明にもプラグインが2つ程度使われており、 本当のアルゴリズムが掴めず理解が逆にとてもしにくくなっています どこかに素のWebGLだけを使った(日本語の)良い解説サイトはありませんでしょうか? また、代わりになる良いOpenGLの解説サイトはありませんでしょうか? どうかよろしくお願いします
イベントバブリングってどういう時に使うんですか?
誰もテンプレ読まないから短くしたらってことなのよ
テンプレ見ない奴はみないし リアルタイムで修正・補足ができるほうがいいし 外部にテンプレ置こうよ スレには今まで見たいな感じで残しておいて 外部ページで補足みたいにしたり、便利な入門サイトおくとかリファレンス一覧サイトを置いたりするのがいいと思うけどな
>>877 子要素のイベントを親要素でキャッチしたいとき
誰もテンプレ見ないからいらない じゃなくてテンプレ見ないやつへの対応をレスアンカだけで済ませられるためのテンプレじゃないの?
別にレスアンカだけの無駄な事もしなくていいだろうに
レスアンカだらけになるのが嫌だから外部サイト(゚听)イラネ
アンカ渡すだけのレスはいらないね
テンプレ云々に限らずレスカンカしかしないのはやめてもらいたいかな
テンプレに書いてるならスルーでいいかと
フラグメントでFAQの場所まで示せるから外部にあった方がいい 質問だけ列挙されてて、最初に全部に目を通しやすいし レスアンカ嫌いな人もレスアンカ見ないで済むし
はじめから外部サイト見るような奴がこんなとこくるわけねーだろ
みんなスルースキル持てばいいだけ
>>892 そんなことできるならみんな質問なんてしないだろw
>>891 テンプレ見るような人はFAQリンクくらい見ると思うがね
毎度テンプレ議論で本来の用途とかけ離れた使い方になってるからテンプレなんて別になくていいし 外に置いとけばいつでも書き換えられるから次スレではとりあえず両方作っとけばいいだろ
896 :
Name_Not_Found :2012/01/27(金) 14:48:15.36 ID:FqRnN8hq
ボタンを押すと他のフレームにあるテキストフィールドにテキストを表示したいのですが、できるんですか。 素人なので全くわからないです、教えてください。
>>899 "trim" でページ検索すれば真っ先にHITしますが…。
902 :
900 :2012/01/27(金) 15:15:19.56 ID:???
>>759 >>4 の ECMAScript 5 compatibility table 参照
906 :
905 :2012/01/27(金) 18:42:33.66 ID:kfox0NDs
ID出し忘れましたすみません
すごい速さだね。もしQのみにするならQのみ版を誰か作って貼ってほしい。
間に合わないならまた現行の微修正になると思われ。
テンプレ不要派の人は
>>1 の差し替え版1レスだけ作って貼ってほしい。
それを見ないとイメージが湧かない。まさか1番から質問にしろとは言わないよね(笑)。
908 :
Name_Not_Found :2012/01/27(金) 19:01:04.32 ID:x0agjE11
>>905 シェルスクリプトとか書くときに、最初にそのシェルのパスを
#!/usr/local/bin/bash
とか、書くじゃん?
そういうのをhash(#) bang(!)の略で「shebang しばん」と呼んだりするんだけど
それに習って#!と書いてるだけかと
history.pushStateとか使って、ちゃんとURL書き換えたほうが良い
と、個人的には思います
あほか。意味はあるぞ。 確かグーグルさんあたり(クローラ関係)が原因だったはず。
>>908 どうもありがとう
とくに決められているわけではなく
よその習慣を持ち込んでるだけなんですね
911 :
905 :2012/01/27(金) 19:09:00.17 ID:???
ああ、レスしている間にレスが
>>909 仕様とかではないけど無意味でもないんですか
HTML分かってないのにジャバスクリプト勉強するのは無理?
914 :
905 :2012/01/27(金) 19:12:23.07 ID:???
>>913 無理ではないけどHTML/CSS/JSの区別がつくぐらいは知っておいた方が良い
>>913 たぶん意味不明すぎてキツイから
絵本みたいなのでさわりでもいいからHTMLとCSSやっておいたほうが良い
>>915 >>916 わかりました
勉強しようと思ったんですが本当に意味不明すぎてきつかったです
まずはHTMLからやってみたいと思います
この手の質問はいつもの荒しじゃないの 誰でも回答者になれるから食い付きがよくて何度も繰り返す
別にいいんじゃね? プログラミング言語何にしようかですら質問する人ってプログラミングスレに多いし
920 :
Name_Not_Found :2012/01/27(金) 19:39:15.19 ID:WmaoenS6
すいません質問です。 var a="abcde"; alert(a); var t=a[0]; a[0]=a[1]; a[1]=t; alert(a); これで文字列の入れ替えが出来るかと思ったら出来ませんでした。 正しい文字列の入れ替えコードはどのようになるのでしょうか?
921 :
Name_Not_Found :2012/01/27(金) 19:45:18.47 ID:x0agjE11
split("")して入れ替えてからjoinするとか replace( regexp , function(){} )を使うとか
a = a.replace(/^(.)(.)/, "$2$1");
>>920 文字列に対してのブラケットは参照しかできない
なの置き換えて代入するとかしないと無理
924 :
Name_Not_Found :2012/01/27(金) 19:57:15.01 ID:WmaoenS6
>>921 〜923
>>参照しかできない
というのは知りませんでした。
シンプルなコードとはいかないのですね。
とりあえず入れ替えを関数化しておきます。
基本型の値を変更できないのは常識だかんな。
回答者がRegExpの機能に無知すぎる。
>>922 でFAだろ?なにごちゃごちゃ言ってるんだか。
毎回荒らし認定してるおまえの(一人か複数かしらないけど)ほうが邪魔
オマエモナー
()ワロス
マターリな流れキボンヌ
a = a[1] + a[0] + a.slice(2); // ES3以下なら String#charAt
>>927 は誰に対してのレス?レスアンカも引用もないから直近の
>>926 ?
だとしたら
>>926 は荒し認定はしていないし邪魔とも言っていないし・・・
「○○のほうが××」と言うには○○がまず「××」と発言していないといけないわけだし・・・
見えない何かが見えている人なのか・・・こわいな
夏目ー
夏目はこわくないよ
>>932 レスアンカーなしで会話する人は信用できないことが多いよ
突然発狂する927はたぶんどのレスかでされた荒し認定が図星だったんだろうな じゃないと意味わからなすぎ または本当に精神状態がアレで何か見えてるとか
回答を得やすい質問は荒らし ↑ この理屈を誰かkwsk
毎日勉強してると最近、Javascript the good partsに書いてあること が分かるようになってきた。 JSでプログラムを組みまくることと、人の組んだプログラムを 読みまくってると、難しい本の内容が分かるようになってくるな。
good partsは初歩だろ
パターンのやつも読んでほしいな
素人目にはパターンの方が分かりやすいし情報多い
945 :
Name_Not_Found :2012/01/27(金) 23:33:15.29 ID:PsuGa0fm
>>941 人工知能分野のマーチンの法則って奴だ。
学習量は知識量に比例する。
そうか。これとおんなじだな! 「落としたトーストがバターを塗った面を下にして着地する確率は、カーペットの値段に比例する」 (マーフィー)
>>945 いま、ざっとみただけだけど、zIndexって記述はあるよ。
949 :
Name_Not_Found :2012/01/28(土) 03:21:17.77 ID:qF/sOs9k
>>948 トンクス!
最後あたりにハケーンした!
ずっとにらめっこしてるなう
グローバルオブジェクトで作成された配列ってどんな配列ですか?
951 :
Name_Not_Found :2012/01/28(土) 04:07:35.15 ID:ivrgLcNk
クリックして閉じたり開いたりするようにするにはどうやってらいいのでしょうか? 例えば、下に概要がでるみたいな感じです。 ・「タイトル」←クリック xxxxxxxxxxxxxxx概要xxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxx概要xxxxxxxxxxxxxxxxxxxxxxxxx (閉じる)
952 :
Name_Not_Found :2012/01/28(土) 04:08:12.61 ID:ivrgLcNk
↑折りたたんだり開いたりできるようなのです
>>952 cssのstyle.display="none"とstyle.display="block"を
クリックで入れ替えてるのがネット上でよく目にするな。
noneが非表示でblockが表示って意味で簡単にできる
スライドするとかだと難しくなる。アコーディオンメニューでググれ
954 :
Name_Not_Found :2012/01/28(土) 05:23:12.26 ID:ivrgLcNk
>>953 ありがとうございます。
最近JavaScriptも始めたのですが
Chromeの改行コードがいまいちわかりません
IEは"\r\n"
Chrome,Firefoxは"\n"
ですよね?
そのつもりで動かしてるんですが
クロームだけが言うことを聞いてくれません。
結局また時間切れで、次スレは現スレと同様に(永遠につづく?)。975超えたらね。
956 :
876 :2012/01/28(土) 12:08:22.36 ID:???
すみません、どうか、どうかお願いします
だから次スレは今までのと試験的に外部にまとめたのをリンクに張っとけばいいんだよ
外部にまとめたのがまだないです
>>956 よく知らんけど必須プラグインなんじゃねーの。本屋で書籍立ち読みしてみればいいよ
>>960 自分にとって立ち読み程度で理解できる難度じゃないんです
しっかり腰を据えてようやくどうかと言ったところなのですが
難しい説明中のコードに当たり前のようにライブラリ(jQueryと行列処理)が使われているのをみると
圧縮されているライブラリを遡って実際のコードは何か突き止めるのが
他にもわからないことだらけの中するのが困難で、心砕かれました
何故、そこまで素のコードだけで解説して欲しいかと言うと、
そうでないといつまでもコピペから抜け出せられないからです
WEBGLは難しいコードを書かせる代わりに凄いことができる仕組みですから
コードの1文1文までしっかり理解して使い熟さないのなら、曖昧なまま使うのでは意味がないと思うからです
jQueryのプラグインでテーブルの複数セルを一括で消去したり書き換えられるものってないですか? もしくは解説してるサイトなどがあれば教えて欲しいです
>>965 嘘だね
コード載ってるけどみてないんでしょ
>>967 お願いですから嘘とか簡単に言わないで下さい
1年くらい前から20回くらいはチェックしてきてます
コード?どこかに解説載ってますか?
もし英語のサイトのことであればすみません
↑で言ったように日本語のサイトでお願いします
codepadは無限ループなコードを投稿すると落ちる気がする サーバ側のプログラムで対策はしてるはずなんだけど前に間違えて無限ループの張ったら落ちた
ここでテンプレ議論なんて無意味 一人で多勢に見せて書き込みも出来るし
俺みたいに帯域持ってる奴ならどこでもできるがな
マジならcodepad.org弱すぎるだろw テンプレはあと上のヤツみたいな釣り質問に対する注意とか入ってると助かる 新参は気づかなかいだろうし、初っ端から50レス消費してたりで結構酷いから
え?帯域!?
釣りかどうか注意なんてどうでもいいし被害妄想がひどいんじゃないか?
質問スレなので質問の消化を最優先に。議論や雑談は禁止じゃないけど流れを見極めて。 みたいな文言をテンプレに入れてほしいね 元は質問の体をしていても質問者を置き去りにして住人同士で議論や雑談になってきたときに 冷静さを取り戻すためにも。自主的に我に返れなくても冷静な人に気付かせてもらうためにも。 テンプレ議論自体も同様
まーた始まった
すんませーん、プログラミングやってるとキンタマの裏(マタの付け根とかも)が痒くなるのですが 皆さん仕事中そうなったらどーしてますかー?
ついてない
何が足りないかというとJavaScriptを書くのにお勧めのエディタ・IDEの紹介がこのスレにはない
股をモジモジさせるorトイレに行って思いっきりボリボリする
孫の手使え。
仕事場で孫の手、肩たたき、丸い穴の開いた座布団使ってる奴見ると かっこよさのステータスが0とハッキリ見えるから困る
いや、本人次第。
>>984 ドーナツ型座布団は許してやれよ
下切れてんだよ
職業病だろ
>>992 あれれれれれ?!
うわっ、いつの間にか日本語の解説ページができてたんですね!
いつもググるときは最近できたページに絞るので気づきませんでした
他よりも10倍わかりやすそうな感じですね……
これは本当にいけそうな気が湧いて来ました!
イケますねこれは、これでダメなら諦めますよ
感謝感激雨霰ですほんとにほんとにありがとう!
もう一つ質問を考えてたのですがそれは次スレにします
さーて、埋めるために関数しりとりいくぞー function
function→netfront.version
素で「functionで終了じゃないか」と思ってしまった navigator.userAgent
toString
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。