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

    元スレjQuery 質問スレッド vol.8

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

    401 = :

    >>398
    それはね、Bugといよりそのケースには未対応ってことなんだよ
    サクッとインスタンスメソッドを作っただけなのでそれは筋違い

    402 = :

    あ、はい、バグだと指摘されたら「仕様です」ですねw

    403 = :

    はい、まともなコードに直してあげましたよw
    古いIEでも動くように考慮してます。

    $.fn.restoreClass = function () {
     return this.each(function() {
      var classes = this.className.split(' ');
      var className = $.grep(classes, function() {
       return this.indexOf('org-') === 0;
      }).join(' ');
      this.className = className;
     });
    };

    $('.org-aaa, .org-bbb').restoreClass();

    404 = :

    ごめん、訂正w

    $.fn.restoreClass = function () {
     return this.each(function() {
      var classes = this.className.split(' ');
      var className = $.grep(classes, function(c) {
       return c.indexOf('org-') === 0;
      }).join(' ');
      this.className = className;
     });
    };

    $('.org-aaa, .org-bbb').restoreClass();

    405 = :

    そして、最新のブラウザだけで動けば良いコード

    $.fn.restoreClass = function () {
     return this.each(function() {
      let classes = $.grep(this.classList, c => c.startsWith('org-'));
      this.className = classes.join(' ');
     });
    };

    $('.org-aaa, .org-bbb').restoreClass();

    406 = :

    別解

    $.fn.restoreClass = function () {
     return this.attr('class', function() {
      let classes = $.grep(this.classList, c => c.startsWith('org-'));
      return classes.join(' ');
     });
    };

    $('.org-aaa, .org-bbb').restoreClass();

    407 = :

    >>406のように特定の条件(わかるかな?w)を満たせば
    extendでもできなくはないですがね。

    $.fn.extend({
     restoreClass: function () {
      return this.attr('class', function() {
       let classes = $.grep(this.classList, c => c.startsWith('org-'));
       return classes.join(' ');
      });
     }
    });

    $('.org-aaa, .org-bbb').restoreClass();

    408 = :

    >>401
    > それはね、Bugといよりそのケースには未対応ってことなんだよ

    jQueryのプラグインの形式として使えるくせに、
    jQueryで使えるセレクタを使ったら正しく動かないのはバグだよ

    それなら関数にしたほうがまだマシ

    409 = :

    data-*属性使えばシンプルに解決できる問題なのに、変な仕組みを作って
    コードを書いたのは良いが、バグありで
    map使ってるくせに戻り値を利用せず、条件に応じてpushかするような
    コードを書くようじゃぁ、まだまだ初心者ですね。考え方もコードも ┐(´ー`)┌ヤレヤレ

    410 = :

    建設的なレスをしないのに限ってああだこうだ言うんだよね

    411 = :

    >>409
    class名できることをdata-*属性の方がシンプルだとか頭悪そうだよな
    ワロタ

    412 = :

    jQuery 仮想質問に答えて罵るスレッド
    この方がこのスレに合ってると思う

    413 = :

    >>411
    > class名できることをdata-*属性の方がシンプルだとか頭悪そうだよな

    まあ実際見てみれば明らかだよ

    >>274にも書いたけど

    <span class="button" data-color="white" data-size="M"> を
    <span class="button" data-color="red" data-size="L"> に書き換えるならば
    $(…).attr({"data-color": "red", "data-size": "L"}) これだけで終わり


    > .aaaに動的に付けたclass(bbb ccc ddd・・・)の削除や付け直しを一括でしたく
    という流れで、 .removeClass()を使う時点で、おかしいと感じないとダメ
    ・・・はどうなっとるんじゃ?と

    > そうなんだけど・・・の管理が面倒で
    > 変更の度にそこも付け加えなくてはならなくて
    > 最初つけるclassは1,2個と少ないので楽かなと

    聞いてみたら↑案の定こういうレスが返ってきたわけで、
    使い方間違ってるなーという話さ

    414 = :

    >>408
    ツッコミどころをわざと作ってやってんだよ
    その方が楽しいだろ?
    案の定、必死に噛み付いて来てるしw

    415 = :

    ツッコミどころをわざと作ってやってんだよ

    416 = :

    >>413
    > $(…).attr({"data-color": "red", "data-size": "L"}) これだけで終わり
    コーヒー噴いたじゃないかよwww
    それってね結局はこれと一緒
    $(…).css({"color": "red", "font-size": "large"})
    単にプロパティーを変更しているだけなんだけどw
    脳内で満足してるだけ

    418 = :

    ツッコミどころをわざと作ってやってんだよ?

    419 = :

    >>383
    動的にということだから他の部分でも~Classメソッド使ってると思われ
    その流れでremove/addClassの方が自然なような

    420 = :

    >>413
    それtoggleClassは?在庫有無だけとか

    421 = :

    >>420
    だからclassを使うのが間違ってるわけだから
    そもそもtoggleClassもいらんのだよ。
    単にdata-*属性に値を入れるだけ

    423 = :

    >>421
    間違っていることはないよ
    どちらを使っても良いんだよ
    脳内の問題

    424 = :

    classっていうのは種類って意味だよ。
    一つの要素がそんなに複数の種類になることなんてない。
    通常は種類は一種類。OOCSSなんかは複数のスタイルで
    継承関係を表しているだけで種類は一種類

    activeとかdisableなんてのも本来はclassの用途としては
    間違っている。実際input要素とかは別の属性だしね

    悪影響がないならclassを使ってもいいけど
    真偽値のみに留めておくのが良い

    やりにくくなったらdata-*属性を使ったほうが良い

    425 = :

    継承関係を表しているだけで種類は一種類?
    class="dog male"
    class="cat female"
    種と性別はどっちがどっちを継承してるの?
    本来はclassの用途としては間違っているってdata-の仕様が出来るまではみんな間違ってたってこと?

    426 = :

    > 種と性別はどっちがどっちを継承してるの?

    自分で書いてるじゃん。

    class=種類は「種」だよ。
    性別は属性

    427 = :

    人間ならmaleとfemaleと見ただけで、それが性別であることはわかるだろうけど、
    コンピュータから見れば、わからないからね。

    各順番を片方逆にしていたら、

    class="dog male"
    class="female cat"

    片方は dog で片方は female という種なんだと
    認識してもおかしくない

    これがプログラミング言語であれば、
    var class = "male" なんてコードは書かないだろう

    428 = :

    長いだけで中身空っぽだぞ

    429 = :

    性別は属性って言ったって、data-できる前<div sex="female">と書いていたのか?
    class使ってたんじゃないの?本来野郎はそこ説明しろよ。

    430 = :

    >>429
    昔classしか選択肢がない状況でclass使っていたからってなんだっていうのだろうか?

    昔の話をするならば、IE6は複数のクラスを指定しても最後の一つしか認識しないバグが有るし
    http://css-eblog.com/ie-css-problems/box.html

    IE4、NN4の時代にはクラスには一つしか指定できなかった
    http://www.tohoho-web.com/lng/200002/00020242.htm

    HTML3.2だとそもそもclassが存在しなかった
    http://qiita.com/anchoor/items/02e4af0f630f5f9b2470

    昔の仕様を持ち出してきて、昔はclass使っていなかっただろ!とか
    一つしか指定してなかっただろ!とか言うことに何か意味があるのか?

    431 = :

    >>424
    class属性は種類というより部類。例えば、aaa と bbb と ccc という種類がある
    'aaa ccc' or 'bbb ccc' は種類によって分けた部類となる
    HTMLは論理要素は意味を持つが物理要素は外見だけなので何の意味もなく
    個々の意図でしかない

    432 = :

    うんうん、それで?

    433 = :

    無意味ってことだろうな

    434 = :

    classify分類する
    classification分類
    class = ???

    435 = :

    >>434
    http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13146534943

    > 分類することがclassification。分類された各区分がclass。

    だってさ

    436 = :

    そっか。

    437 = :

    ここ面白いな、。次のスレタイはこれで。
    質問者の質問を元に自分で勝手に変更解釈して自分で答えを書くスレ。

    438 = :

    まだやっていたのか
    静的につけたclassが動的処理で消える問題を考慮するなら、data-*もclassも同じ問題を抱えてる
    WeakMapを使えば良いだけ

    439 = :

    >>437
    ちがうよ
    質問をお題に知識をひけらかしてマウントとるスレ
    だろ

    440 = :

    >>438
    まだやってるのはお前だけdata-*属性を使うことに対して異論は出てない
    更に言うならばclassに使うということはCSSで何かしらのデザインを与えたい
    ということだろうから、data-*属性ならば属性セレクタで対応は可能だが
    WeakMapを使った場合は実現できない

    441 = :

    <ul class="aaa"l>
    <li>リスト0</li>
    <li>リスト1</li>
    </ul>
    <ul class="bbb"l>
    <li class="selected">リスト2</li>
    <li>リスト3</li>
    </ul>

    var obj = $('aaa li, bbb li');
    console.log(obj); [ 0: li, 1: li, 2: li.selected, 3: li ]
    console.log(obj.filter('.selected').index()); // 0
    console.log(obj.filter('.selected').prev()); // length: 0

    ul.aaa li と ul.bbb li を統合したobjから .selected の一つ前の要素を
    取得したいのですがやり方間違っています?

    442 = :

    >>444ですがhtmlにゴミが入っていましたのでこれになります
    <ul class="aaa">
    <li>リスト0</li>
    <li>リスト1</li>
    </ul>
    <ul class="bbb">
    <li class="selected">リスト2</li>
    <li>リスト3</li>
    </ul>

    443 = :

    >>421
    それは意味が違うし、するにしても面倒
    toggleClassは(引数なしなら)今の値の逆、つまり今の値が何かは関係ない
    422だとこうなる
    今の値取得->逆->設定

    444 = :

    > 今の値の逆、つまり今の値が何かは関係ない

    矛盾しとるんだが?

    445 = :

    それにtoggleClass(引数なし)は

    jQuery 3.0でdeprecated
    http://api.jquery.com/toggleClass/#toggleClass2

    もう使うなよ?

    446 = :

    >>439
    うん、それもあるな
    しかもその知識は質問者の都合無視

    447 = :

    >>444
    全然しとらんやんけ
    現在値を気にする必要ない

    448 = :

    今の値の逆だろ?
    今の値の

    449 = :

    redの逆って何?青になんの?
    じゃorangeだったら???

    450 = :

    toggleClassは(引数なしなら)今の値(red)の逆、つまり今の値が何かは関係ない


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

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


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