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

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

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

    351 = :

    MDCのCore JavaScript Referenceでオブジェクトリテラルって
    どこにかかれているのでしょうか。
    Global_ObjectのArrayの配列リテラル[]のような感じで
    {}もどこかにあるのかなと思ったんですが・・

    353 = :

    すみません
    http://developer.mozilla.org/ja/Core_JavaScript_1.5_Guide/Creating_New_Objects
    にありました。

    355 = :

    コンストラクタと、それに伴うものが違う。

    356 = :

    文字列は配列のように扱うことが出来るけど配列のように参照渡しになる?

    357 = :

    >>356
    Stringの関数よく見ればわかるだろうけど、気にしようがないから気にすんな

    358 = :

    したけりゃStringオブジェクトにでもしろ

    359 = :

    >>358
    その手があったか!

    366 = :

    メモ帳

    367 = :

    うそ乙

    369 = :

    十分だろ

    370 = :

    Java Scriptでテキストボックスの変数を未入力、半角スペースのみ、全角スペースのみ
    でチェックしてそうなら処理中止というif分を書きたいのですが未入力しか判別してくれません
    var input;//テキストボックスの値を持った変数
    if(input == "" || input == "[ ]+" || input == [ ]+){
    ~~~
    }
    まだJava Scriptになれていなく文法がよくわかりません、どなたか助けて下さい。

    371 = :

    >>370
    「正規表現」で調べる。

    372 = :

    みんなエディター何使ってる??

    373 = :

    >>366

    376 = :

    正規表現を知っているからといって慢心してはならない。

    379 = :

    質問です。
    tableのある2つのtd要素を入れ替えたいです。
    replaceChildは使えません。同じ行でない場合はもちろん・同じ行だと要素が消えました。
    現状片方のinnerHTMLを変数に代入→入れ替え→一つに変数を戻す。という形でやっていますが、
    いかんせん重いのです。そこで、innerHTMLが重いのではないかと考え、DOM要素ごと入れ替えようと思ったのですが、
    .innerHTMLを消すと動かなくなります。(appendChildは要素の位置が不定なので無理です。)
    親要素が違う場合、子要素の入れ替えはinnerHTML以外無いのでしょうか?

    380 = :

    お前がへたくそなだけだろ
    つかコードくらい書けよ

    381 = :

    簡易の為にprototype.jsのエレメント取得も
    <script type="text/javascript">
    var $ = function (B) {return document.getElementById(B);}
    //$('test1') = $('test2');//動かない
    $('test1').innerHTML = $('test2').innerHTML;
    </script>
    <table><tbody><tr>
    <td id="test1">test1</td>
    <td id="test2">test2</td>
    </tr></tbody></table>
    コメントアウトしてある方の感じで、要素の属性から中身まで全部を入れ替えたいのです。(replaceChildは親要素が違う可能性があるので無理です)

    383 = :

    >>381
    replaceChild()でもできるはずだけどな。

    //直下の子が1ノードだけのときはこれでOK
    var test1 = $('test1');
    var test2 = $('test2');
    var child1 = test1.firstChild;
    var child2 = test2.firstChild;
    test1.replaceChild(child1, child2);
    test2.appendChild(child1);


    384 = :

    >>381
    直下の子が複数ノードの場合はこんなかんじ。
    var test1 = $('test1');
    var test2 = $('test2');
    var child1 = test1.firstChild;
    var first1 = child1
    // test1の子供をtest2に追加
    while (child1) {
    var next = child1.nextSibling;
    test2.appendChild(child1);
    child1 = next;
    }
    // test2の子供を、上で足したものの直前まで移動
    var child2 = test2.firstChild;
    while (child2 != first1) {
    var next = child2.nextSibling;
    test1.appendChild(child2);
    child2 = next;
    }


    385 = :

    直下の要素はソースで2つ有ります。(関係ないですがDom情報で、tridentでは2つ、gecko,webkitでは5つぐらいに認識されます・・なぜ・・・)
    test1.re~のところで、NOT_FOUND_ERR: DOM Exception 8となります。。
    いまさらなのですが、DOM要素での入れ替え(出来る場合)とinnerHTMLでの入れ替えがほぼ同じスピードならinnerHTMLでも問題ないのですが、どうなんでしょう?

    386 = :

    var d = document;
    var c1 = d.getElementById('test1');
    var c2 = d.getElementById('test2');
    var r1 = c1.parentNode;
    var r2 = c2.parentNode;
    var c1f = r1.cells[c1.cellIndex + 1];
    r2.replaceChild(c1, c2);
    r1.insertBefore(c2, (c1f === c2) ? c1 : c1f);

    innerHTMLやcloneNodeはEventListenerやUserData等を保持しない

    387 = :

    おぉ!
    素晴らしいです!ありがとうございました。
    最後にひとつだけ、innerHTMLが問題なのはわかったのですが、速度はどちらの方が早いのでしょう?

    388 = :

    知らん
    5年前のMozillaならinnerHTMLが正気の沙汰でない重さだったが今は改善されている
    innerHTMLの方が速いと言う人もいるがinnerHTMLは再描画のキュー待ちになるのに対し
    DOMはそのつど再描画が走ることが多いから必ずしもフェアな比較でない

    どちらにせよ大切なのは再描画を最小限に抑えること
    また意識すべきはユーザの体感速度であって必ずしも実速度でない

    速度より重要なのは一つのDOM木を大勢で喰い散らかしている現実への対処
    例えば379の同僚がセル内に仕掛けたEventListenerを379がinnerHTMLで消してしまっては話にならない
    グローバル変数は毛嫌いするのにこういう部分には無頓着な人が多い

    389 = :

    innerHTMLでイベント全部消していく横暴なプログラムはやめてくれ
    せめてnodeValue書き換えて

    391 = :

    その文字列に数字は入るのか。
    入らないなら楽。

    392 = :

    >>390
    具体的な例を上げた方が早いよ。日本語じゃわかりづらい
    どういう入力があったときにこういう出力が欲しいっての書かないと。
    あと正規表現でここまでできたとか。

    393 = :

    >>391
    文字列に数値は入りません

    >>392
    xarray[0] = Field.value.match(/[0-9][0-9][0-9]/g);
    //(以下同様)
    みたいな感じです

    396 = :

    すいません!
    gオプション付与で上手くいきました
    失礼しました

    sage忘れもすいませんでした

    397 = :

    >>392
    メタ認知や抽象的思考ができない人が心がけ実践すべき3つの事柄:DESIGN IT! w/LOVE
    http://gitanez.seesaa.net/article/133527498.html

    398 = :

    これはひどいオナニー文章

    399 = :

    確かに>>392みたいなのには伝わらないだろうな

    400 = :

    なんだ宣伝か


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

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


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