X



+ JavaScript の質問用スレッド vol.121 +
■ このスレッドは過去ログ倉庫に格納されています
0001Name_Not_Found
垢版 |
2014/09/13(土) 19:11:44.98ID:???
JavaScript に関する何でも質問スレです。
お気軽にどうぞ。
0002Name_Not_Found
垢版 |
2014/09/13(土) 19:12:15.46ID:???
■前スレ
+ JavaScript の質問用スレッド vol.120 +
http://peace.2ch.net/test/read.cgi/hp/1409373751/

■過去スレ全集
http://www2.atpages.jp/mirror/2ch/javascript/
http://usamimi.info/~mirrorhenkan/2ch/javascript/ (閲覧のみ)

■関連スレ
ECMAScript デス 4
http://toro.2ch.net/test/read.cgi/tech/1325448978/
【jQuery】JavaScript ライブラリ総合質問所 vol.3
http://toro.2ch.net/test/read.cgi/hp/1369444026/
【WHATWG】HTML5 Part6【W3C HTML WG】
http://toro.2ch.net/test/read.cgi/hp/1393153279/
Webサイト制作初心者用質問スレ part239
http://toro.2ch.net/test/read.cgi/hp/1393828207/
CSS初心者スレッド=12th=
http://toro.2ch.net/test/read.cgi/hp/1343429848/
Canvasについて語ろう
http://toro.2ch.net/test/read.cgi/hp/1305093769/
0003Name_Not_Found
垢版 |
2014/09/13(土) 19:12:54.32ID:???
■各種仕様 ( http://fiddle.jshell.net/vSqKr/33/show/#Link も参照 )
◆ Standard ECMA-262
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/ (ECMAScript 3 和訳)
http://www.ecma-international.org/ecma-262/5.1/ (ECMAScript 5.1 HTML版)
http://people.mozilla.org/~jorendorff/es6-draft.html (ECMAScript 6 有志HTML版)
http://kangax.github.io/es5-compat-table/ (ECMAScript 5 compatibility table)
http://kangax.github.io/es5-compat-table/es6/ (ECMAScript 6 compatibility table)
◆ HTML Standard (HTML5)
http://www.whatwg.org/specs/web-apps/current-work/multipage/
http://momdo.s35.xrea.com/web-html-test/spec/WD-html51-20130528/Overview.html (HTML5.1 部分訳)
http://www.hcn.zaq.ne.jp/___/WEB/WebStorage-ja.html (Web Storage 和訳)
◆ Document Object Model (DOM) / CSS Object Model (CSSOM)
http://www.hcn.zaq.ne.jp/___/WEB/DOM4-ja.html (DOM Standard (DOM4) 和訳)
http://www.w3.org/TR/DOM-Level-3-Events/ (DOM3 Events)
http://www.w3.org/TR/uievents/ (UI Events)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-ja.html (CSSOM 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-view-ja.html (CSSOM View Module 和訳)
◆ その他のWeb関連仕様
http://domparsing.spec.whatwg.org/ (DOM Parsing and Serialization - innerHTML等)
http://www.hcn.zaq.ne.jp/___/WEB/XHR-ja.html (XMLHttpRequest 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/File_API-ja.html (File API 和訳)
http://www.whatwg.org/specs/ (WHATWGの仕様一覧)
◆ MDN (Netscape/Mozilla)
https://developer.mozilla.org/ja/docs
◆ JavaScript Garden (ja)
http://bonsaiden.github.com/JavaScript-Garden/ja/
◆ JSON (JavaScript Object Notation) 4
http://www.json.org/json-ja.html
◆ MSDN Library
http://msdn.microsoft.com/ja-jp/library/yek4tbz0.aspx (JavaScript)
http://msdn.microsoft.com/ja-jp/library/cc427807.aspx (JScript)
http://msdn.microsoft.com/ja-jp/library/cc409712.aspx (DHTML)
0005Name_Not_Found
垢版 |
2014/09/13(土) 22:28:07.09ID:???
>>1
またお前か
教えて君を擁護するためのテンプレで新スレを無駄に量産するな
0006Name_Not_Found
垢版 |
2014/09/14(日) 20:59:18.42ID:xbdCvSRU
どんだけスレ立てるんだよww
まぁスレ立てる手間省けていいけど
乙!
0007Name_Not_Found
垢版 |
2014/09/14(日) 21:43:27.09ID:???
乙なわけないだろ
この手の擁護はワンパターンすぎるわ
0008Name_Not_Found
垢版 |
2014/09/15(月) 16:18:51.11ID:gtUjIHaV
phpのstrip_tag()と同じことができる
方法を考えて
0009Name_Not_Found
垢版 |
2014/09/15(月) 20:33:15.48ID:???
>>8
ここは荒らしが立てたフライングスレだから他所へ行け
0010Name_Not_Found
垢版 |
2014/09/16(火) 16:49:17.38ID:6H52XqM3
ひさびさに来たんだが
なにが荒らしなん?
0011Name_Not_Found
垢版 |
2014/09/16(火) 18:10:51.54ID:pcL6/osK
文字列がすべてASCIIかを調べる正規表現を教えて頂きたいのですが、
自分で調べたところ

/[\x01-\x7F]/g



/[\x20-\x7E]/g

この2つが見つかりました。
これはどっちを使えばいいのでしょうか?
詳しい方教えてください
0013Name_Not_Found
垢版 |
2014/09/16(火) 18:55:07.40ID:???
>>10
vol.119がある状況でvol.121をたてる必要はないから
0014Name_Not_Found
垢版 |
2014/09/20(土) 16:06:26.93ID:MSLISnVY
あげあげ
0016Name_Not_Found
垢版 |
2014/09/21(日) 17:12:43.40ID:???
このスレはそのスレの次次スレだろ
0018Name_Not_Found
垢版 |
2014/09/22(月) 12:00:57.77ID:???
立てたのは荒らしかも知れないが、
スレ自体はまともなので問題ないのでは?

スレに問題があるっていう人、何人もいたっけ?
俺の知る限り一人しかいないよ。
0019Name_Not_Found
垢版 |
2014/09/23(火) 20:13:21.31ID:???
一人かどうかは知らんが、問題があるのは明らかだろ
0020Name_Not_Found
垢版 |
2014/09/24(水) 13:07:24.54ID:???
問題あるよ
おかしな文句言ってる奴の頭にww
0021榎本行宏 忍法帖【Lv=10,xxTP】(1+0:5) 【ponponfine95916】 ◆aXy7M764q2
垢版 |
2014/09/28(日) 15:46:50.85ID:e8x8AMN5?2BP(1000)
この問題の答え誰かわかりますか?(*ω*)
《演習ドリル JavaScript(1)》
【01】JavaScriptの標準化されたものをなんと呼ぶか書きなさい
【02】JavaScriptは、「   」で動くスクリプトです。空欄を埋めなさい。

   1. サーバー 2.クライアント
【03】命令文(ステイタス)の終了を表す記号を書きなさい
【04】jsフォルダー内にある sample.js を読み込む記述をしなさい
【05】警告ウィンドウを表示するスクリプトを記述しなさい(値は不要)
【06】ブラウザに文字列を表示するスクリプトを記述しなさい(値は不要)
【07】JavaScriptでの変数宣言をするために必要な語句を書きなさい
【08】文字列「こんにちは」を、ブラウザに表示するコードを記述しなさい(script要素内)
【09】変数 msgに、ダイアログボックスに入力された値を代入しブラウザに表示する記述をしなさい
【10】変数 aに8を、変数 bに6を代入し、a を bで割った余りををコンソールに表示しなさい
0022Name_Not_Found
垢版 |
2014/09/28(日) 17:15:03.86ID:???
> 【01】JavaScriptの標準化されたものをなんと呼ぶか書きなさい
LiveScript

>【02】JavaScriptは、「   」で動くスクリプトです。空欄を埋めなさい。
サーバーサイド等

> 【03】命令文(ステイタス)の終了を表す記号を書きなさい
なくてもよい

> 【04】jsフォルダー内にある sample.js を読み込む記述をしなさい
cat js/sample.js

> 【05】警告ウィンドウを表示するスクリプトを記述しなさい(値は不要)
<dialog id="alert">警告ウインドウ</dialog>
document.getElementById('alert').show()

> 【06】ブラウザに文字列を表示するスクリプトを記述しなさい(値は不要)
document.body.innerHTML = 'test';

> 【07】JavaScriptでの変数宣言をするために必要な語句を書きなさい
let

> 【08】文字列「こんにちは」を、ブラウザに表示するコードを記述しなさい(script要素内)
<script>document.write('<' + '/script>こんにちは<' + 'script>')</script>

> 【09】変数 msgに、ダイアログボックスに入力された値を代入しブラウザに表示する記述をしなさい
bootbox.prompt("input", "cancel", "ok", function(msg) { alert(msg) });

> 【10】変数 aに8を、変数 bに6を代入し、a を bで割った余りををコンソールに表示しなさい
[a,b]=[8,6],console.log(a/b)
0023Name_Not_Found
垢版 |
2014/10/03(金) 18:10:26.35ID:???
JavaScript を自ら学ぶ人のための質問スレッドです。
>>24-27のテンプレを読んだ上で質問してください。

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

■過去スレ全集
http://www2.atpages.jp/mirror/2ch/javascript/
http://usamimi.info/~mirrorhenkan/2ch/javascript/ (閲覧のみ)

■テンプレ案
http://fiddle.jshell.net/fH4cC/160/show/

■関連スレ
ECMAScript デス 4
http://peace.2ch.net/test/read.cgi/tech/1325448978/
JavaScript ライブラリ総合質問所 vol.4
http://peace.2ch.net/test/read.cgi/hp/1400834117/
Webサイト制作初心者用質問スレ part242
http://peace.2ch.net/test/read.cgi/hp/1411718322/
CSS初心者スレッド=12th=
http://peace.2ch.net/test/read.cgi/hp/1343429848/
Canvasについて語ろう
http://peace.2ch.net/test/read.cgi/hp/1305093769/
0025Name_Not_Found
垢版 |
2014/10/03(金) 18:13:56.54ID:???
■主要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 中でやるとか。
0026Name_Not_Found
垢版 |
2014/10/03(金) 19:02:32.39ID:???
■各種仕様 ( http://fiddle.jshell.net/vSqKr/33/show/#Link も参照 )
◆ Standard ECMA-262
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/ (ECMAScript 3 和訳)
http://www.ecma-international.org/ecma-262/5.1/ (ECMAScript 5.1 HTML版)
http://people.mozilla.org/~jorendorff/es6-draft.html (ECMAScript 6 有志HTML版)
http://kangax.github.io/es5-compat-table/ (ECMAScript 5 compatibility table)
http://kangax.github.io/es5-compat-table/es6/ (ECMAScript 6 compatibility table)
◆ HTML Standard (HTML5)
http://www.whatwg.org/specs/web-apps/current-work/multipage/
http://momdo.s35.xrea.com/web-html-test/spec/WD-html51-20130528/Overview.html (HTML5.1 部分訳)
http://www.hcn.zaq.ne.jp/___/WEB/WebStorage-ja.html (Web Storage 和訳)
◆ Document Object Model (DOM) / CSS Object Model (CSSOM)
http://www.hcn.zaq.ne.jp/___/WEB/DOM4-ja.html (DOM Standard (DOM4) 和訳)
http://www.w3.org/TR/DOM-Level-3-Events/ (DOM3 Events)
http://www.w3.org/TR/uievents/ (UI Events)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-ja.html (CSSOM 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-view-ja.html (CSSOM View Module 和訳)
◆ その他のWeb関連仕様
http://domparsing.spec.whatwg.org/ (DOM Parsing and Serialization - innerHTML等)
http://www.hcn.zaq.ne.jp/___/WEB/XHR-ja.html (XMLHttpRequest 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/File_API-ja.html (File API 和訳)
http://www.whatwg.org/specs/ (WHATWGの仕様一覧)
◆ MDN (Netscape/Mozilla)
https://developer.mozilla.org/ja/docs
◆ JavaScript Garden (ja)
http://bonsaiden.github.com/JavaScript-Garden/ja/
◆ JSON (JavaScript Object Notation)
http://www.json.org/json-ja.html
◆ MSDN Library
http://msdn.microsoft.com/ja-jp/library/yek4tbz0.aspx (JavaScript)
http://msdn.microsoft.com/ja-jp/library/cc427807.aspx (JScript)
http://msdn.microsoft.com/ja-jp/library/cc409712.aspx (DHTML)
0027Name_Not_Found
垢版 |
2014/10/03(金) 19:05:40.91ID:???
■諸注意
vol.115でlodashを不必要に推奨して啓蒙する行為が多く確認されており、ライブラリ系の質問はvol.116から禁止されました。
vol.115,116ではライブラリ禁止する発言が見られた直後にライブラリを許可する意図で次スレを立てる行為が確認されています。
本スレッドでライブラリ許可を求める発言が確認された場合は不要な争いを避ける為、スルーすることを推奨します。
ライブラリの質問はライブラリスレへ誘導し、誘導行為への反論はスルーしてください。
0030Name_Not_Found
垢版 |
2014/11/01(土) 23:10:29.60ID:0xdu+1aq?2BP(2000)
HTML5のdrag&amp;drop機能との連携について質問です
下のような図になっていて
http://i.imgur.com/MWODR7N.png
要素をdrag&amp;dropすることは出来ました

次にドラッグしてきた時に重なった下の要素を取得しようと思い四角い要素にondragoverの属性を付けてドラッグしてみましたが
(図で言うと上の枠からドラッグしてきて既にある赤い四角と重なった時に下の赤い四角を取得しようとした)
重ねるとドロップされるボックス自体の要素が返ってきました

四角い要素を取得するにはどうしたらいいのでしょうか?
0031Name_Not_Found
垢版 |
2014/11/01(土) 23:18:59.79ID:0xdu+1aq?2BP(2000)
すいません書き方が間違っていただけでした
0032Name_Not_Found
垢版 |
2014/11/01(土) 23:21:03.67ID:???
>>30
こんなサンプル見つけたよ。

http://cdn.liginc.co.jp/demo/2014/07/zuya/dd/index4.html

参考になるかな?

$(function() {

$(".dragDiv").draggable();

$( "#div3" ).droppable({
accept : ".dragDiv" , // 受け入れる要素を指定
drop : function(event , ui){
// dragされてきたオブジェクトを取得してクローン作製
var dragId = ui.draggable.attr("id");
if($(this).find(".drop" + dragId).length == 0){
$(this).append('<span class="drop' + dragId +'">' + ui.draggable.text() + 'が置かれたよ</span>');
}
} ,
out : function (event , ui){
var dragId = ui.draggable.attr("id");
$(this).find(".drop" + dragId).remove();
}

});
});
0036Name_Not_Found
垢版 |
2014/11/06(木) 11:06:09.58ID:???
>>33
幼稚なことすんなゴミ
新陳代謝の低い板なんだからスレがえんえん残るだろボケ
0037Name_Not_Found
垢版 |
2014/11/06(木) 11:10:49.89ID:???
テンプレなんて意味ないんだから立った順番に粛々と使っていけばいい
ここはvol22として利用する
0038Name_Not_Found
垢版 |
2014/11/07(金) 15:24:22.70ID:???
ここは実質vol.22なのか
では、>>33に移動しようか
0039Name_Not_Found
垢版 |
2014/11/07(金) 16:53:20.73ID:???
(function(a){
})(a||a=[]);

こんな感じだったかよく覚えてないけど
括弧の中で代入してるコード見たことあるんですけど自分で描いてみたらエラーになりました
aっていうのが存在しなかったら[]を渡したい場合はどう書けばいいですか?
0042Name_Not_Found
垢版 |
2014/11/07(金) 19:57:58.43ID:???
spanをgetElementsByTagNameで取得して
obj.style.color = 'red'ってやってbodyに挿入したんですけど
この挿入した要素をquerySelectorで取得したいんですがdocument.querySelector('span[style="color: red"]')で取得できません
javascriptからstyleを設定しないで直接HTMLに<span style="color: red"></span>って書くと取得できました
どうやったらjavascriptでstyleを設定した要素をquerySelectorで取得できるかおしえてください
0043Name_Not_Found
垢版 |
2014/11/07(金) 20:20:20.19ID:???
setAttribute使うのはなしでおねがいします
なかったらないでいいです
0044Name_Not_Found
垢版 |
2014/11/07(金) 21:02:08.30ID:???
>>42-43
それは恐ろしく悪い実装だからお勧めしない
素直に class や id を使え
0045Name_Not_Found
垢版 |
2014/11/07(金) 21:39:38.98ID:???
それは無理ですそういうコードを書いているWEBサービスを僕が使わせていただいている身で、便利にするブックマークレットを作りたいからです
0046Name_Not_Found
垢版 |
2014/11/07(金) 22:11:54.74ID:???
そういえばJavaScriptでCSSを書き換えると自動的に値が変換されることがあるよな
elm.style.color = "#ff0000"; // => color: rgb(255, 0, 0);
elm.style.width = "0"; // => width: 0px;
elm.style.margin = "0 1px 0 1px"; // => margin: 0px 1px;
どういう風に変換するのかは、仕様で決まってるのかな?
それともブラウザが勝手に決めてるのだろうか
0047Name_Not_Found
垢版 |
2014/11/07(金) 23:25:25.62ID:rGU/ECK3
>>39

(function(a){
})(a || []);


こうじゃねーの?
0048Name_Not_Found
垢版 |
2014/11/07(金) 23:29:23.03ID:???
Uncaught ReferenceError: a is not defined
0049Name_Not_Found
垢版 |
2014/11/07(金) 23:30:59.88ID:rGU/ECK3
じゃあこうだろw

(function(a){
})(window.a || []);
0050Name_Not_Found
垢版 |
2014/11/07(金) 23:47:57.79ID:???
それでもいいけど、aがfalseyだったら思わぬことになるから
(function(a){
})("a" in window ? a : []);
がいいんじゃない?
0051Name_Not_Found
垢版 |
2014/11/08(土) 00:52:02.23ID:???
>>39
関数外で宣言する必要がまるでない
(function(){
var a = a || [];
})();
0052Name_Not_Found
垢版 |
2014/11/08(土) 00:57:39.11ID:???
>>45
では、面倒くさいが、
span[style="color:red"], span[style="color: red"], span[style="color : red"], span[style="color:#f00;"], span[style="color: #f00"]
のようにホワイトスペースやカンマの有無の全ての組み合わせを , 区切りで宣言しろ
ブラウザがstyle属性値をどのような書式で持つかは実装依存
ブラウザがバージョンアップして挙動が変更することも考えられるので必ず「全てのパターン」を宣言しろ
0053Name_Not_Found
垢版 |
2014/11/08(土) 01:01:39.96ID:???
>>51
それだと関数内の var で a が新たに宣言されてしまうので不可
var a = "test";
(function(){
var a = a || []; // 関数外の宣言に関わらず [] が代入される
})();
0054Name_Not_Found
垢版 |
2014/11/08(土) 01:11:54.57ID:???
>>53
"test" でも [] でも良い状況ってどんなケース?
[] で初期化するんだからオブジェクトを想定していたんだが
005554
垢版 |
2014/11/08(土) 01:13:42.72ID:???
あと、その条件なら普通にグローバルコードで宣言しろよ、と思うね
var a = a || [];
0056Name_Not_Found
垢版 |
2014/11/08(土) 01:14:41.99ID:???
>>54
a = "test"じゃなくても{}でも[]でも同じこと
試せばわかる
0057Name_Not_Found
垢版 |
2014/11/08(土) 01:22:39.75ID:???
>>56
なるほど、これでいいかね?
var a = [];
(function(){
var a = this.a || [];
}).call(this);
0060Name_Not_Found
垢版 |
2014/11/08(土) 02:12:08.58ID:???
>>59
すまん、向こうで回答しなおしてきた
荒らすのもいい加減にして欲しい
0061Name_Not_Found
垢版 |
2014/11/08(土) 02:17:33.79ID:???
>>42
document.querySelector('span[style="color: red;"]')

ただしこっちの方が安定的
Array.prototype.filter.call(document.querySelectorAll("span"), function(e){ return e.style.color == "red;" })[0]
0062Name_Not_Found
垢版 |
2014/11/08(土) 08:47:50.81ID:6IP4Y34A
$('span').filter(function() { return this.style.color = 'red'})
0063Name_Not_Found
垢版 |
2014/11/08(土) 10:54:19.86ID:???
querySelectorの第2引数の情報MDNに乗ってなかったよく知ってるな
0065Name_Not_Found
垢版 |
2014/11/08(土) 13:08:58.96ID:YzcprxwW
>>64
いやですw
0066Name_Not_Found
垢版 |
2014/11/08(土) 13:12:09.89ID:???
荒らしの立てたスレだから荒らしだけが残ればいい
0067Name_Not_Found
垢版 |
2014/11/08(土) 14:04:11.51ID:???
>>46
>どういう風に変換するのかは、仕様で決まってるのかな?

要素 element の element.style の戻り値が実装する
CSSStyleDeclaration インタフェースの
getPropertyValue() メソッドを呼び出したときの
戻り値の書式は CSSOM で決まってる。
(たぶんこれが element.style.xxx でアクセスしたとき得られる値だろう)

color の場合

"rgb(R, G, B)" (不透明度 1 の場合)または
"rgb(R, G, B, A)"
になる(R, G, B は10進数で A は小数、カンマの後はスペース)

element.style.color = ... で設定したときに element の style 属性にも
同じように反映されると考えるのが自然だが、仕様には書かれてないね

HTML 仕様にも style 属性のふるまいについて
www.w3.org/TR/css-style-attr/
を参照しているが
element.style.color = ... で値を設定したときについては
どうも書かれてないみたい
0068Name_Not_Found
垢版 |
2014/11/08(土) 14:06:35.92ID:44JfXZ+T
> span[style="color : red"],

これだと、例えばbackgroudが定義された時
色は赤なのにマッチしなくなるぞ
0069Name_Not_Found
垢版 |
2014/11/08(土) 14:08:27.84ID:44JfXZ+T
というかユーザースタイルシート(CSS)を書いてるのならともかく、
JavaScriptのコードを書いてるのにstyle属性をセレクタで
取得しようというのはセンスが悪いよ。
0070Name_Not_Found
垢版 |
2014/11/08(土) 14:30:42.40ID:???
>>68
span[style="color: red"], span[style="color : red"], span[style="color :red"],
span[style^="color: red;"], span[style^="color : red;"], span[style^="color :red;"],
span[style^="color: red ;"], span[style^="color : red ;"], span[style^="color :red ;"],
span[style*=";color: red;"], span[style*=";color : red;"], span[style*=";color :red;"],
span[style*=";color: red ;"], span[style*=";color : red ;"], span[style*=";color :red ;"],
span[style$=";color: red;"], span[style$=";color : red;"], span[style$=";color :red"],
span[style$="; color: red;"], span[style$="; color : red;"], span[style$="; color :red"]
のように部分一致にすれば良い
これでも足りないが、ホワイトスペースの組み合わせを考えると、気が遠くなる

>>69
querySelector がナンセンスなのは同意だが、querySelectorでないと困ると駄々をこねるので>>52で回答した
ComputedStyle を取るほうがまだマシだな
0071Name_Not_Found
垢版 |
2014/11/08(土) 15:32:07.79ID:???
>70に付け加えるなら「color: #f00, color: #ff0000, color: red, color: rgb(255, 0, 0)」のパターンもある
ホワイトスペースや ; の組み合わせパターンも考えると、かなり大変だな
ナンセンスな実装には違いない
0072Name_Not_Found
垢版 |
2014/11/08(土) 16:55:19.91ID:???
function abc(){
var result = aaaa();
result.ok = function(e){

}
}
って書くのと
function ok(){

}
function abc(){
var result = aaaa();
result.ok = ok;
}
}
って書くのどっちがメモリにやさしいですか?
前者はabc()を呼ぶたびに中の無名関数が生成されていってメモリの無駄になる気がするんですが
0073Name_Not_Found
垢版 |
2014/11/08(土) 16:58:56.26ID:???
>>72
実際にベンチマーク取ればわかるだろ?

わからければ・・・・違いはないということさ。
0074Name_Not_Found
垢版 |
2014/11/08(土) 19:27:34.31ID:???
なんかあっちはわざと?くだらない話ばかりして
グダグダしてるから、こっちにまともな答え書いておくわ。

Math.random() は0から1未満の数を返す。だから0にはなるが1.0にはならない。

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Math/random
> [0,1) 、……つまり、0 以上 1 未満の範囲で疑似乱数を返します。Java と同様に、現在時刻をシードとして乱数を生成します。

求めたい値が、0〜5であれば、0, 1, 2, 3, 4, 5 の6パターンなので
Math.floor(Math.random()*6)が正解。

Math.random()が1がでるのであれば、1×6 = 6になるが、
1未満を返すので6未満、つまり最大でも5.9999・・・の小数点切り捨てで5が最大になる。
0〜1未満を6倍すると以下のようになるから、計算上は公平になる。

Math.floor(0 〜 0.9999・・・) = 0
Math.floor(1 〜 1.9999・・・) = 1
Math.floor(2 〜 2.9999・・・) = 2
Math.floor(3 〜 3.9999・・・) = 3
Math.floor(4 〜 4.9999・・・) = 4
Math.floor(5 〜 5.9999・・・) = 5


Math.floor(Math.random()*6) - 1; だとrandom() = 0の時
Math.floor(0*6) - 1 = Math.floor(0) - 1 = -1 なので明らかに間違い。
0075Name_Not_Found
垢版 |
2014/11/08(土) 19:34:02.86ID:CMgSWh8C
偽スレと本スレの格の違いがでたなw
0076Name_Not_Found
垢版 |
2014/11/08(土) 19:39:24.23ID:/Hj0O7lg
>例えばさ、乱数が0.0から0.9まで出るとするじゃん
>そうすると
>0.0*6=0.0
>0.1*6=0.6
>0.2*6=1.2
>0.3*6=1.8
>0.4*6=2.4
>0.5*6=3.0
>0.6*6=3.6
>0.7*6=4.2
>0.8*6=4.8
>0.9*6=5.4
>になって偏りがでるよね
>実際には問題にならないだろうけど
>凄い気になる

ってのがあったんだけど、まあいいや
ありがとう
0077Name_Not_Found
垢版 |
2014/11/08(土) 19:48:02.89ID:???
こっちもぐだぐだ感あふれてるわ
さっきはあっちのスレにたまたま人が多かっただけで何も変わらん
0078Name_Not_Found
垢版 |
2014/11/08(土) 19:48:20.50ID:???
>>76
>例えばさ、乱数が0.0から0.9まで出るとするじゃん

それは精度が低い(小数点第一位で終わってる)から。

random()が浮動小数点数を返すのは
精度が高く無いと、数値をかけた時に狂うから。

例えば0〜5ではなく、0〜99の時は
Math.random()*100になるが
0.4 だと 40、0.5 だと 50。41〜49が出る確率は0になってしまう。

これが0.4〜0.5の間もちゃんとでるのであれば、
0.41*100 = 41、0.42*100 = 42 のようにちゃんとでてくれる。

random()が0〜1未満の浮動小数点数(なるべく小数点以下が多い数)を
返すのは、ある範囲の整数を返すときに必要な「任意の数をかける」時に
問題ないようにするためなんだよ。

君が言ってる隔たりの原因は精度が低いから。
0079Name_Not_Found
垢版 |
2014/11/08(土) 19:50:04.53ID:???
>>77
なんで始まってからすぐグダグダになるんだよw
0080Name_Not_Found
垢版 |
2014/11/08(土) 19:50:31.28ID:/Hj0O7lg
>>78
うん、ありがとう
0081Name_Not_Found
垢版 |
2014/11/08(土) 19:53:36.68ID:/Hj0O7lg
なんでこんなこと聞いてたかっていうと
以下のコードで円周率を計算しようと思ったんだけど
ちゃんとした数値が出なくて
どこがおかしいのか添削してくれ

凄い遠回りしてるのは、自覚してるので
出来れば大幅な改変は無しでお願いします



var arr = new Array();
for (m = -50; m < 51; m++) {
for (n = -50; n < 50; n++) {
arr.push([m, n]);
}
arr.push([m, n]);
}

function crd() {
var rdm = arr[Math.floor(Math.random() * 10201)];
return Math.pow(rdm[0], 2) + Math.pow(rdm[1], 2);
}

var j = 0;
for (i = 0; i < 100000; i++) {
if (crd() < 2500) {
j++;
}
      }
      document.write("π≒" + j * 4 / 100000);
0082Name_Not_Found
垢版 |
2014/11/08(土) 19:55:02.99ID:???
>>79
こっちは>>39>>42に対する回答がぐだぐだだったし、何も変わらん
0083Name_Not_Found
垢版 |
2014/11/08(土) 19:57:36.27ID:???
> 0.2*6=1.2
> 0.3*6=1.8
> 0.4*6=2.4
> 0.5*6=3.0

ここだけを見ると2が出る確率が低いようだけど、実際は


0.00000 <= x < 0.16666… = 0
0.16666 <= x < 0.33333… = 1
0.33333 <= x < 0.5     = 2
0.5    <= x < 0.66666… = 3

になるから、どれも0.166666…ずつで、
ちょうど同じ数なんだよなね。
0084Name_Not_Found
垢版 |
2014/11/08(土) 20:07:18.90ID:???
>>42>>46>>52>>67>>70>>71
elm.style.xxx に値をセットした時には setPropertyValue() が呼び出される
http://www.w3.org/TR/cssom/#dom-cssstyledeclaration-camel-cased-attribute
「Setting the camel-cased attribute attribute must invoke setProperty() ...」

その際に値が自動変換される
http://www.w3.org/TR/cssom/#serialize-a-css-component-value
実際の定義は細かいけど、例として…
keyword は、小文字に変換される(RED は red になる。決して rgb() や #xxx などには変換されない)
<color> は、rgb(x, x, x) 又は rgba(x, x, x, x) に変換される。値同士は ", "(カンマ・スペース) で区切る
<length> で値が 0 の場合は、0px に変換される

さらに、style属性の文字列が更新される
http://www.w3.org/TR/cssom/#dom-elementcssinlinestyle-style
「Mutating the declarations must set the style content attribute ...」
その際の文字列の生成方法は、http://www.w3.org/TR/cssom/#serialize-a-css-declaration-block に記載されている。
概説すると、
[1] それぞれの宣言を「プロパティ名 + ": " + 値 + ";"」の形式にする。
.  その際、ショートハンドプロパティで表せるならそれを用いる
[2] それぞれを " " で結合する


…というわけで、ブラウザが CSSOM に則っているなら、
elm.style.color = "red"; としたら style="color: red;" になるし、>>46 の各々の変換も仕様に沿ったものである。

ただし、CSSOM はまだ Working Draft なので、上記の仕様に沿っていないブラウザも多数あるのが事実。
とは言っても >>42 の場合は自分が動かす分で動作すればいいだけなので、自分の環境で動くものを回答レスから適当に拾えばいい。長文すまん
0085Name_Not_Found
垢版 |
2014/11/08(土) 20:25:18.35ID:???
>>81
そのコードが何をやってるのかさっぱりわからんけど
(SQUEAKとかいうやつみたいだけど考えるの面倒くさいw)

以下のように数値変えたらそれっぽくなったよ。
何か計算間違ってるんじゃね? 点の取り方とか個数とか枝切の値とか

var arr = new Array();
for (m = 0; m < 1000; m++) {
for (n = 0; n < 1000; n++) {
arr.push([m, n]);
}
arr.push([m, n]);
}

function crd() {
var rdm = arr[Math.floor(Math.random() * 1000000)];
return Math.pow(rdm[0], 2) + Math.pow(rdm[1], 2);
}

var j = 0;
for (i = 0; i < 100000; i++) {
if (crd() < 1000000) {
j++;
}
      }
      console.log("π≒" + j * 4 / 100000);
0086Name_Not_Found
垢版 |
2014/11/08(土) 20:30:25.30ID:???
>>81
初めから10201個の点の位置を決めている、というのがナンセンス
この時点で π の正確な値は出せない
極端な例で言うと、3x3の9個の点だと、中央の1点しか円の内側にないでしょ?

改善する方法は、点の位置を毎回ランダムに決めること
頑張れば100文字ぐらいでコード書けるよ
008770
垢版 |
2014/11/08(土) 20:31:19.43ID:knhGBN36
>>84
つまり、CSSOM 仕様準拠の実装なら
document.querySelector('span[style^="color: red;"], span[style*="; color: red;"]');
>>42の目的を達成できるわけか
勉強になった、ありがとう
0088Name_Not_Found
垢版 |
2014/11/08(土) 20:35:53.57ID:/Hj0O7lg
>>85
うーん、点の個数が少ないのかな?
0089Name_Not_Found
垢版 |
2014/11/08(土) 20:37:13.71ID:/Hj0O7lg
>>86
10201個じゃ少ないってこと?

これだと上手くいく

var arr = new Array();
var j=0;
function f(){
return Math.pow(Math.random(),2);
}
for(i=0;i<10000000;i++){
if(f()+f()<1){
j++;
}
}
document.write("π≒"+j*4/10000000);
009085
垢版 |
2014/11/08(土) 20:44:34.93ID:???
> var arr = new Array();
> for (m = -50; m < 51; m++) {
> for (n = -50; n < 50; n++) {
> arr.push([m, n]);
> }
> arr.push([m, n]);
> }

50と51の違いも気持ち悪いが、ここを変えても変化はなかった。
2番目のarr.pushも気持ち悪いが、arr.length = 10201で
ランダムの最大とも一致するから間違ってないだろう。

> for (i = 0; i < 100000; i++) {
この100000はサンプル数だろう。単純に10倍したら結果も10倍になった。
j * 4 / 100000 の 100000と同じであれば数が多ければなんでも良さそうだ。

で最期に怪しかったのが、
> if (crd() < 2500) {
2500という数字で2500というのは50 * 50 だが
これは51 * 50 = 2550ではないのかね?

と思って変えてみたら、それらしくなったぞw

相変わらず数学的な意味はさっぱりわからんが(笑)
コードの一貫性における違和感のみからバグ取りしてみた。
009186
垢版 |
2014/11/08(土) 20:46:12.07ID:???
>>89
そう、まさにそれ
0092Name_Not_Found
垢版 |
2014/11/08(土) 21:44:59.37ID:/Hj0O7lg
>>90
確かにその違和感は自分でも感じた
でも理論的には間違っていない・・・はず

円周率を求めると言う課題は89のコードでクリアしたから
あとは何故このコードが上手く動かないかだけ
すっきりしたい

半径50の円を描いていることになるから2500で
間違いないはずなんだけどな
少しそこんとこ突き詰めて考えてみるか
0093Name_Not_Found
垢版 |
2014/11/09(日) 00:14:46.45ID:???
3.1454ってなるじゃん。ただの誤差だよ
0094Name_Not_Found
垢版 |
2014/11/09(日) 00:41:50.23ID:BwBDaWrA
<<93
そうだな

こうしたら多少良くなったから
多分初期値が少なすぎたんだと思う

レス下さった皆さん有難う御座いました

var arr = new Array();
for (m = -500; m < 501; m++) {
for (n = -500; n < 500; n++) {
arr.push([m, n]);
}
arr.push([m, n]);
}

function crd() {
var rdm = arr[Math.floor(Math.random() * 1002001)];
return Math.pow(rdm[0], 2) + Math.pow(rdm[1], 2);
}

var j = 0;
for (i = 0; i < 100000; i++) {
if (crd() < 250000) {
j++;
}
}
document.write("π≒" + j * 4 / 100000);
0095Name_Not_Found
垢版 |
2014/11/09(日) 07:15:53.95ID:???
>>94
これ、ループでランダムに要素をとる意味が全くないぞ
まずはプログラミングじゃなくて数学の勉強しろ
0096Name_Not_Found
垢版 |
2014/11/09(日) 08:55:16.54ID:BwBDaWrA
>>95
こういうこと?


var j=0;
function f(){
return Math.pow(Math.random(),2);
}
for(i=0;i<10000000;i++){
if(f()+f()<1){
j++;
}
}
document.write("π≒"+j*4/10000000);
0097Name_Not_Found
垢版 |
2014/11/09(日) 09:10:59.68ID:BwBDaWrA
総当り法ってことかな
0098Name_Not_Found
垢版 |
2014/11/09(日) 11:32:27.96ID:???
いまだにinnerHTML使ってる奴見ると吐き気がする
0099Name_Not_Found
垢版 |
2014/11/09(日) 11:46:31.07ID:???
場合によると思うけどね
jQueryにも使われてるし、仕様に書かれているくらいだし
0100Name_Not_Found
垢版 |
2014/11/09(日) 11:54:41.53ID:???
意味不明
innerHTMLは普通に使っていいっていう結論が出たはずだが?
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況