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

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

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

    901 = :

    勉強にもなるのでもうしばらく続けてほしい
    他に質問なり何なりが飛んできてるのにやってたらどうかと思うけど

    902 = :

    はい盛り上がったので900超えました。テンプレ論議あれば今どうぞ。

    903 = :

    じゃあ、そろそろまとめて

    904 = :

    call-by-value:組み込み型
    call-by-sharing:オブジェクト
    call-by-reference:関数の返値として参照を返すのは仕様上認められている
     ただ、現実そういう実装はない(flanaganの本に書いてある)

    906 = :

    Javaは「参照の値渡し」でござる

    908 = :

    document.evaluateの使い方?ついて質問です
    xhrとかでhtmlを取得した値をDOMにしてからcontextNodeに指定し

    var dom = document.createElement("HTML");
    dom.innerHTML = res.responseText;

    document.evaluate(xpath,dom,null,7,null)

    としてdomの中からid hoge を取得する時

    firefoxだとid('hoge')で取得できるのですが
    chromeの6.0以降だとid('hoge')では取得できません
    仮にidがついてるのがdiv要素だとして//div[@id="hoge"]だと取得できます

    これはcontextNodeの使い方がそもそも間違ってるのでしょうか・・?
    それともevaluateの実装の違いによる問題なのでしょうか・・・

    909 = :

    誰かこの質問スレのdatファイル持ってない?
    できれば1からほしいんだけど。。

    910 = :

    jQueryのプラグインでclickイベントで動くものがある場合に
    プラグイン上でclickイベントを動作させた後で
    独自のclickイベントを実行させたいのですが、
    その場合はプラグイン内のclickイベントの内容を
    改造するしかないのでしょうか

    元のhtml上で
    $("#○○○").click(
     function() {
      alert("OK");
    });
    等と書いてもプラグインのclickイベントに食われてるようです。
    なら
    $("#○○○").mouseup(
     function() {
      alert("OK");
    });
    とやってみたのですが、逆にプラグイン側のイベントを食ってしまいました

    911 = :

    >>908
    Chromeの他、Opera、Safariも同様の動作で、Firefox(の3.5以上)だけが
    本来のDOMツリーに属してないDOMにもid関数を使える。仕様的には未定義だった気がする。
    各ブラウザでid関数を使えるようにするのは結構面倒で、なるべく簡単書いてみると
    var html_text = 'HTML<p>hoge<p>fuga<span id="a">aaa</span>';
    var doc = document.implementation.createDocument(null, 'html', null);
    var body = document.createElement('body');
    body.innerHTML = html_text;
    doc.documentElement.appendChild(doc.adoptNode(body));
    console.log(doc.evaluate('id("a")',doc,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue);
    こんな感じ。
    最近ならquerySelector使うほうが断然楽だね

    912 = :

    はぁ?

    913 = :

    ふぅ

    914 = :

    ライブラリ類を使う必要性を感じないのだけど、
    トレンド的にはやっぱ使うべきなのかね。
    なんつーか、ライブラリはコードが濁って本質が見えなくなる気がする。

    915 = :

    仕事じゃ開発効率が大切だからねえ。
    勉強が目的ならライブラリは後回しにするべき。

    917 = :

    >>911
    なるほど・・・
    Chromeの5.0.xまでは同じソースコードで取れてたので謎でした
    id関数は//*[@id="hoge"]とかに置き換えるほうが楽なのかな・・・


    そしてchromeやfirefoxじゃとれる
    "//a or //b"といったxpathでbooleanの結果が取れなかった・・・
    この書き方自体が変なのかな・・・

    918 = :

    >>914
    実際の案件やってると確実にIEに悩まされるから、ライブラリやフレームワークって便利なんだよ・・・
    レアケース以外は差異を考えなくてよくなる
    あとイベントまわり

    922 = :

    バッチリ動きました!
    miではなくmとiだったんですね・・・もっと勉強します。
    本当に有難うございました

    925 = :

    大量にあってもベタ書きしてるってこと?

    929 = :

    他言語の宿題スレ的な質問が不適当でしたらすみません。

    ・入力としてプレーンテキストを受け取る
    ・リンクとして張るべき文字列(http/https スキームで良いです)
     アンカー付きの HTML にして返す

    といった処理はどうすればよいでしょうか。
    Web メールのビューアあたりでよくありそうな処理ではないか…と思っているのですが…

    930 = :

    >>917
    Chrome5では動いてたんだ…。動かない気がするけどなぁ。
    実行している元のページ上にid="hoge"な要素があって、そっちを取得してた可能性も…。
    ちなみに //*[@id="hoge"] も .//*[@id="hoge"] と相対パスにしておかないと↑と同じことに。
    > "//a or //b"といったxpath
    "//a | //b" かな。

    933 = :

    突然すいません
    http://xn--5usq05i.com/
    ↑このサイトの様に、ページを移動せずにAPIの検索結果のソートを変更していくのはどうしたらいいんでしょうか?
    全パターンを最初に読み込んで表示を切り替えてるだけのようには思えないんですけど・・・

    934 = :

    リンク先見てないけど普通にリクエストをサーバに投げてるんじゃないの

    935 = :

    >>931
    ありがとうございます。プレーンテキストなのでどこで切るべきか迷っていたのですが
    スペースと改行コードあたりでそれなりに動いているようですのでこれで行ってみます。

    >>933
    クリックのタイミングでサーバに問い合わせ→DOM を削除 / 追加しているんじゃないでしょうか?

    936 = :

    >>934,935
    リクエストをサーバに投げるというのは、ボタンをクリックするとパラメーターを送ってその条件に応じたapiを
    javascriptでパースして表示しているということでしょうか?
    それだとブラウザでは表示されても、HTMLソースに表示されなくないでしょうか?

    937 :

    >>936
    なんかAPIって言葉の使い方が間違ってる気がするが、それはさておき。
    サイト見たけど普通に同期通信してるだけだと思う。

    941 = :

    そもそも変数じゃないし。

    本人が理解している内容を、正しい言葉で表現できていないだけかと。

    942 = :

    var new_div = document.createElement('div') などしたあとに、 new_div.id = "div_id" などできますが、この new_div に生えているメソッド一覧はどうすれば確認できますか?

    944 = :

    っと、alert(str);

    945 = :

    >>944
    ありがとうございます。

    946 = :

    「生えているメソッド」なんて言い方、初めて聞いた。
    自分の髪もユーザ定義で生やすことできないかなぁ。

    947 = :

    var 毛根達 = 人間.evaluate(".//毛根",頭皮,null,7,null);

    if (毛根達.resultType != 7 || 毛根達.snapshotLength == 0) {
     return "毛根死んでるので手遅れです";
    }

    var 毛根の数 = 毛根達.snapshotLength;
    for (var i = 0; i < 毛根の数; i++) {
     var 毛根 = 毛根達.snapshotItem(i);
     var has毛 = false;
     for (var j = 0; j < 毛根.childNodes.length; j++) {
      var 毛根についてるもの = 毛根.childNodes[j];
      switch (毛根についてるもの.nodeValue) {
       case "フケ":
        毛根.removeChild(毛根についてるもの);
        break;
       case "毛":
        has毛 = true;
        育毛剤(毛根);
        break;
       default:
        洗浄(毛根);
      }
     }
     if (has毛 == false) {
      毛根.appendChild(人間.createElement(毛));
     }
    }



    こんな感じじゃだめか

    948 = :

    「生えている」はあんまり聞かないけど、「メソッド/プロパティを生やす」ならたまに使うかな


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

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


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