のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,931人
昨日:no data人
今日:
最近の注目
人気の最安値情報

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

    JavaScript覧 / PC版 /
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    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 = :

    "..." に置換 が一番面白いとこなのに


    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について