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

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

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

    ページ内の幾つか(=連続してない)の要素<a>のonclickにある関数を書いておいて、
    クリックでその関数が実行されたら、その要素の前や後の要素を特定って簡単ではないですよね?
    <a onclick="test('~~要素ごとに違う~~')"
    現在考えているのは、document.getelementsByTagName('a')からString(a[i].onclick).match(/test\(/)が真である要素の配列をつくって、
    onclick="test('~~の~~が最後に実行されたものと同じやつを探して、±1するというのなんですが、
    これ以上にスマートなやり方は無いでしょうか?

    702 = :

    >>701
    何がやりたいのかよくわからないな

    > クリックでその関数が実行されたら、その要素の前や後の要素を特定って簡単ではないですよね?
    previousSiblingとかnextSiblingで辿ってくのじゃだめなの?

    703 = :

    >>702
    Lightboxみたいなのを自作しているんですが、前の画像次の画像へ移動するには前後のonclick="testを探さないといけなくて、
    <a>の階層はバラバラなので、getElementsByTagName('a')がまず思いつきました。

    704 = :

    >>703
    a要素に連番の入ったidを割り振れば簡単じゃない?
    なんだか基本設計を変えた方がよさげだけど。

    705 = :

    サンプル見ないとさっぱりわからないネ
    結局前後とは何を指してるのか

    706 = :

    >>696
    document.bodyはDOM Level 2 HTMLで定義されてる
    レガシーである、という記述はどこにもない
    http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-26809268

    無論、もともとは独自拡張から始まったものではあるけれどね

    708 = :

    >>706
    ああ、誤解を与えたかもしれないが
    DOM-HTMLがそもそもレガシーから始まっており
    Window、HTMLDocumentそのものがレガシーの正当化に過ぎないという意味で
    「レガシー」を使った
    事実XHTML5でHTMLDocumentは使えないようになっただろ

    709 = :

    >>704,705
    前後はそうですね、
    オミトロンで全ページ対象に導入しているuserscriptのようなものです。
    素直にidつけて回してみます。。。とcss3セレクタでうまい取得方法がありました。
    a[onclick^=test]

    710 = :

    いろいろ途中で送信してしまった。
    前後はそうですね、→jQuery('a[onclick^=test]')[4].onclick()の状況なら
    jQuery('a[onclick^=test]')[3]とjQuery('a[onclick^=test]')[5]ってことです。
    セレクタで取得しても最後のイベントの発生した要素の番号がわからないので
    また別にいじらないといけないですね。orz

    711 = :

    >>695
    どうもありがとう
    違いはないから名前も付いてないんですね

    712 = 693 :

    >>699
    その流れで、このスレでエライ怒られたことがある。
    ちょうどPrototype.jsが話題だった頃。

    質問した時に、要素にあれこれメソッドをくっつける作りになってて、
    「そんなことしたら、他の人がいじろうとしたときに云々…」と。

    おまえら俺のサイトでなにする気だよ!と思った。

    714 = :

    単なる属性セレクタだろ

    715 = :

    CSS3ではこの辺も入るんだよな確か

    716 = :

    ^がべき乗じゃないときもいという意味なら、その発想の方がきもいな

    717 = :

    アホを刺激しないように

    719 = :

    ^を実装するとしたらそれは演算子として扱うようにするのがたいていの開発者思想
    ただJavaScriptにそれは通用しない

    720 = :

    正規表現disってんじゃねーぞ

    いややっぱdisってもいいや

    721 = :

    CSSでも実装されてるのに何を今さらって感じだな

    722 = :

    >>718
    悪いが、鬱陶しいから確証がないならいちいちリンク挙げんな
    俺もだいたい目を通しているんだから、見落としが明らかなときだけ挙げてくれ

    とは言え、今回は明らかに俺の誤りだったから>>708は撤回する
    XHTML5でdocument.writeが使えないということを
    HTMLDocumentをサポートしないと脳内変換してしまっていた
    すまんかった

    とにかく、俺が>>696で言いたかったのは
    「レガシーな」HTMLDocument::bodyを前提にしておきながら
    「レガシーな」HTMLScriptElement::srcを避けるのは無意味であり
    スタイルとして一貫してなく不格好だということ

    ここで俺は「レガシー」を後方互換性確保の意味合いが強いという
    それだけの意味合いで用いている
    根拠はDOM2-HTMLの1.1-1.3節、DOM-FAQあたり

    規定で定義されればレガシーでない、という立場なら
    今やdocument.allすらレガシーではなくなった

    724 = :

    レガシーレガシー連呼すんじゃねえよ
    横文字かっこいいとかおもってるの?

    725 = :

    説明下手なだけ、ほっといてあげるべき

    726 = :

    >>718, 722
    なんだか濃密な議論サンクス
    深い意味もなくsetAttribute使ってたけど、
    不快感を感じる人もいるんだね。
    俺としては、属性値の設定はsetAttributeで統一したほうが読みやすい
    って感じがあるな。慣れちゃったからかも。

    ところでdocument.getElementsByTagName('body')[0]って、
    ブラウザ互換的に安全に使えたっけ?

    727 = :

    >>722
    吃驚したわー

    728 = :

    >>722
    レガシーレガシー言うから、久々にマジック・ザ・ギャザリング思い出しちまったぜ。

    729 = :

    http://nanto.asablo.jp/blog/2005/10/29/123294
    を読むと setAttribute を使えなくなって、IEが嫌いになる

    730 = :

    レガシーはレガシー。他の言葉がない。

    731 = :

    遺産でいいじゃん

    733 = :

    そのバグ>>4に書いてあるじゃん

    734 = :

    >>726
    setAttributeは値を必ず文字列として扱う
    たとえばinput.setAttribute('checked', true)は<input checked="true">にする
    もちろんこれは誤りでchecked="checked"が正しい
    だが最近はブラウザが補正してくれているから気付かない奴が多い

    setAttributeは属性の意味を考慮せず言われたままセットするだけだから
    HTMLの文法が頭に入ってなきゃきちんと使えないんだよ
    DOMをHTMLに戻して検証にかければ、当たり前だがエラーになる

    一方、DOM-HTMLのはプロパティの種類に応じて
    数値・ブール値として、あるいは絶対URIに適切に変換してくれる

    いろんな情報がごっちゃになって結局間違えるくらいなら
    setAttributeなんか使わない方が無難だろうよ

    IEバグで言えば、ごく一時期setAttribute('class')||setAttribute('className')なんて
    馬鹿げた書き方が流行ったんだぜ
    IEは酷いが、こんなのに疑問すら持たず喜ぶアホどもも大概だ

    735 = :

    > HTMLの文法が頭に入ってなきゃきちんと使えないんだよ
    考え方の相違かもしれんが、HTMLを理解してる人には、
    むしろsetAttributeのほうが自然で使いやすいと思う

    > 数値・ブール値として、あるいは絶対URIに適切に変換してくれる
    こういう変換は、コードに不透明感が出るというか

    736 = :

    動きゃいいんだよ、好きにやれや

    737 = :

    > checked="checked"が正しい
    HTML 4.01 Transitionalだとこういう書き方はしないし
    HTMLの種類によって正しいかどうかは違ってくるかと

    738 = :

    それじゃ納得行かないから揉めてんだろw
    主に>>696さんが

    739 = :

    >>737
    してもいいんじゃないの
    checked="checked"の属性名を省略してるってことでしょ

    740 = :

    >739
    違ってたら申しわけないけど、
    それは省略したんじゃなくてxmlに対応させたんじゃなかっけ

    742 = :

    var Foo = function(){};
    Foo.prototype = {};
    と、
    var Foo = {};
    についてですが、

    前者の中身にアクセスするにはFooをインスタンス化しないといけない。
    後者は中身をスタティックに呼ぶことができる。
    という認識であっていますか?

    743 = :

    インスタンスがなくてもFoo.prototypeから直接アクセスできるお

    744 = :

    >>743
    確かめました。
    参考になりました。どうもありがとうございます。

    745 = :

    >>728
    懐かしいなw
    俺もウルザ、マスクス・ブロックの頃はまってたわw

    746 = :

    最近、ホームページを作っています
    そろそろJavaScriptを使ってみようと思っているのですが中学生でも始められますか?
    あと、家にパソコンないんですけど携帯で作ってる人もいるみたいなのですが大丈夫ですか?

    747 = :

    釣りだろうが携帯は無理

    748 = :

    携帯でタグ打ち(笑

    749 = :

    携帯のメールでスクリプトタグかなんか使って動きつけたりして遊べたよな

    750 = :

    ケータイのメモ帳なんかでサクサクっと作ってたらそれはそれでカッコいいかもな。


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

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


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