元スレ+ JavaScript の質問用スレッド vol.75 +
JavaScript覧 / PC版 /みんなの評価 : ○
651 = :
innerWidthが0のとき
DOM1なら必ず存在するdocumentElementをチェック
そして互換モード時は0になり、この場合は標準モード時でも0であろう
documentElement.clientWidthを見て
フォールバックとしてDOM0でも存在が怪しいbody.clientWidthを見て終了
いやはや
652 = :
質問じゃないな。
653 = :
http://developer.apple.com/jp/documentation/ScriptingAutomation/Conceptual/JSCodingGuide/OOJavaScript/chapter_4_section_3.html#//apple_ref/doc/uid/TP40006088-CH4-SW1
ここのページにnewとdeleteはセットで使う必要があるみたいなことが書いてあるんだけど
少なくともsafariではこれに倣って必ずやらないといけないのかな
それともただ単にいらないものは几帳面に消しておくということなのか
654 = :
>>653
どっちでもいい
プロパティ名を残した方が JIT コンパイラによる最適化が働く場合もある。気がする
655 = :
計算についての質問なのですが、
足し算で、2つのフォームから数字を入力してjavascriptで自動計算して足し算するとして、
1+1のように入力すればいいのですが、1+001 などと0を付けて書かれた場合にうまく計算されなくなってしまいます。
こういうものはどのようにして対処すればいいのでしょうか。
656 = :
今やって見たら001は大丈夫そうだったので訂正
0101+1のような場合です、番号のように書かれてしまった場合にズレるのをどう直したらいいでしょうか
657 :
>>656
まず、そのような期待する数値以外の入力をどう処理したいのか決めないと。
659 = :
んーと・・・
最初の0を取り除いて、「計算させたい」です
10進法になってないところを10進法にしたいです
0101+1なら101+1の102にしたいです
0010などと入力されても10として計算できるようにしたいです
うまい対処の仕方を知りたいのです
「最初に0を入力させない」や「数字を選択方式にする」以外の方法がいいです
0は自由に入力されてしまうとして、ベストだと思う解決法を教えてください
660 = :
>>659
正規表現で先頭の0を探して、replaceで削除
661 = :
>>659
parseInt("0101", 10)で101になる
662 = :
すまん、そっちのほうがよさそう
664 = :
脳内インタープリターがそうはならないと言っている
666 = :
正規表現と置換で済ますのはカスだろ
667 = :
これをもっとスマートに短く書くにはどうすればいいですか?
var URL = window.location.pathname.match(/(.*?)\//g);
URL = thisURL[thisURL.length-1];
668 = :
途中で送信してしまいました。
これをもっとスマートに短く書くにはどうすればいいですか?
var URL = window.location.pathname.match(/(.*?)\//g);
URL = thisURL[thisURL.length-1];
var file = window.location.pathname.match(/([^\/]+?)$/);
str = URL + file;
alert(str);
670 = :
ht~aa/bb/cc/dd
→cc/ddってこと?
var u = window.location.pathname.match(/[^\/]+/g);
str = u[u.length-1] +'/' +u[u.length]
というか、window.location.pathname.match(/([^\/]+\/[^\/]+)$/);
使い方がわからんが。
671 = :
"aaa/bbb/ccc/ddd".match(/[^\/]+\/[^\/]+$/)[0]
673 = :
みなさまどうもありがとうございました。勉強になりました。
675 = :
"aaa/bbb/ccc/ddd".match(/[^\/]+\/[^\/]+$/)[0]
これって、ddd 取り出すときは
"aaa/bbb/ccc/ddd".match(/[^\/]+$/)[0]
ですよね?
/ccc/
を取り出すにはどうすればいいの?
677 = :
どーもです!
実は[1]にしたらundeだったんで質問しますた
もっかいやりまーす
678 = :
まずぐぐれよw
679 = :
スルー笑
680 :
JavaScriptの勉強がしたいのですが、どの本がおすすめですか?
C言語は知っています。作りたい具体的なプログラムはありません。
682 = :
宣伝きめえ
683 = :
document.TxtArea.myText.value += "("+day[cnt2]+")"+hour+":"+min+"\n";
上記の最後の改行部分 \n" を消して改行しないようにしたいのですが \n"を消すと動作しなくなりました。
上記は計算したものを表示するテキストエリアに表示させる部分なのですが、なぜかこの後に記述した
ここに表示された文字をコピーさせるボタンも動作しなくなります。
何がしたいかと言うとこのままだと表示に改行が入り、コピーした場合1行しか貼り付け出来ない所に
貼り付けると3行あっても1行しか貼り付けられないのを回避したい為、表示の時点で改行を消し1行にしたいのです。
よろしくお願いしまっす。
684 = :
>>683
消すなら +"\n"
次に質問することがあったらもうちょっとレベルあげてからきてくれ
685 = :
文字列と変数についてもう一度ググッてくれば良いんじゃない。
\n"を消すとその後も動かなくなるのはそこでルール違反しているから。
686 = :
>>684-685
出来ました!本当にありがとうございます。
レベルが低いのはすみません、昨日始めたばかりで調べてもさっぱりでした。
精進しまっす!
690 = :
日本語でおk
692 = :
jsで埋め込むと何故かtezt-overflowが効かないな。<nobr>で囲ったような表示になる。
<span style="margin:0 0 0 10px; text-overflow:ellipsis; white-space:nowrap; overflow:hidden; width:100px;">~~</span>
693 = :
>>692
tezt-overflow
695 = 687 :
cssで解決すべき問題だったんですね。
すれ違いの質問に有り難うございます、やってみます。
696 = :
もう用なしっぽいけど、書いちゃったし。。。
var AnyWidth = (function () {
var getWidth = function (txt) { //txt幅を返す(プライベート関数)
var n = 0, body = document.body;
if (body) {
var d = document.createElement("div"), t = document.createTextNode(txt);
d.appendChild(t); d.style.visibility = 'hidden';
d.style.position = 'absolute'; d.style.whiteSpace = 'nowrap';
body.appendChild(d); n = d.clientWidth; body.removeChild(d);
}
return n;
}
return {
getStr: function (txt, w) { //w幅に収まるtxtを返すメソッド
var str = "";
if (!getWidth(txt) || getWidth(txt) < w) { str = txt; }
else {
for (var i = txt.length; i >= 0; i--) {
var s = txt.substring(0, i) + "...";
if (getWidth(s) <= w) { str = s; break; }
}
}
return str;
},
createElm: function (tag, txt, w) { //w幅に収まるtxtを持つw幅のtag要素を生成して返すメソッド
var d = document.createElement(tag), t = document.createTextNode(AnyWidth.getStr(txt, w));
d.appendChild(t); d.style.width = w + "px";
return d;
}
}
})();
697 = :
>>696続き
<body>
<script type="text/javascript">
var variable = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
document.write("<div id='test'>" + AnyWidth.getStr(variable, 100) + "</div>");
//createElmメソッド使用例
var testElm = document.getElementById("test");
var elm = AnyWidth.createElm("div", variable, 200);
testElm.parentNode.appendChild(elm);
alert("test " + testElm.clientWidth + "px / hoge " + elm.clientWidth + "px");
</script>
</body>
body要素認識後でないと使えない。
エラは吐かないけど、渡した文字列をそのまま返す。
大量の文字列は適当に削って渡さないとかなり重い:-(
698 = :
>>695
CSSでは解決できない問題だから↑の人が書いてくれたのを使いなさい
700 = :
"..." に置換 が一番面白いとこなのに
類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.95 + (1001) - [97%] - 2012/1/17 4:16
- + JavaScript の質問用スレッド vol.74 + (1001) - [97%] - 2009/12/1 6:08 ○
- + JavaScript の質問用スレッド vol.76 + (1001) - [97%] - 2010/3/10 4:02
- + JavaScript の質問用スレッド vol.77 + (1001) - [97%] - 2010/5/8 19:06
- + JavaScript の質問用スレッド vol.78 + (1001) - [97%] - 2010/6/25 3:53
- + JavaScript の質問用スレッド vol.79 + (1001) - [97%] - 2010/9/11 6:50
- + JavaScript の質問用スレッド vol.85 + (1001) - [97%] - 2011/4/25 21:32
- + JavaScript の質問用スレッド vol.105 + (1001) - [95%] - 2013/5/20 4:45
- + JavaScript の質問用スレッド vol.115 + (1001) - [95%] - 2014/5/29 16:16
- + JavaScript の質問用スレッド vol.125 + (1001) - [95%] - 2015/10/7 17:45
- + JavaScript の質問用スレッド vol.135 + (1002) - [95%] - 2018/11/23 10:30
- + JavaScript の質問用スレッド vol.96 + (1001) - [95%] - 2012/1/28 23:01
- + JavaScript の質問用スレッド vol.93 + (1001) - [95%] - 2012/1/1 4:46
- + JavaScript の質問用スレッド vol.94 + (1001) - [95%] - 2012/1/8 15:46
- + JavaScript の質問用スレッド vol.99 + (1001) - [95%] - 2012/5/7 4:32
- + JavaScript の質問用スレッド vol.97 + (1001) - [95%] - 2012/3/1 3:31
- + JavaScript の質問用スレッド vol.98 + (1001) - [95%] - 2012/4/9 14:46
トップメニューへ / →のくす牧場書庫について