のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,942人
昨日: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

    351 = :

    > 最初つけるclassは1,2個と少ないので楽かなと
    と書いてある通り、1個とは限らないしね

    352 = :

    >>349
    > これは以前のjQueryにおいてのこと

    だから以前のjQueryだからって何なんだって話だ
    jQuery 1.9.1で実行してみたが、
    このように.aaaしか取れない
    それで何がしたいのか

    <span class="btn aaa">span</span>

    alert($('.aaa').selector); // .aaa

    353 = :

    >>350
    >>140にはそんなことは書いていないだろ?w
    最後に.addClass('aaa')で完結している

    354 = :

    >>352
    セレクタを参照してそれ以外のclassを削除するというインスタンスメソッド

    355 = :

    >>353

    >>143に書いてあるだろ
    勝手に完結させんな

    143 名前:Name_Not_Found[sage] 投稿日:2018/01/28(日) 17:27:37.90 ID:???
    >>142
    そうなんだけど・・・の管理が面倒で
    変更の度にそこも付け加えなくてはならなくて
    最初つけるclassは1,2個と少ないので楽かなと

    356 = :

    >>354
    > セレクタを参照してそれ以外のclassを削除するというインスタンスメソッド

    だから、<span class="btn aaa">span</span>
    aaaを参照して静的に書かれたbtnまで削除してしまう
    使えないメソッドですねって言ってんだよw

    357 = :

    そもそもselectorを使うってセンス悪いわ

    セレクタがIDだったらどうするんだ?
    セレクタが属性セレクタだったらどうするだ?
    カンマで区切られた複数のセレクタだったら、
    親子セレクタ、隣接セレクタだったら?

    セレクタがクラスの場合に限り、セレクタに
    一致するものを除いて削除するメソッドとか
    設計的に気持ち悪い。selectorなくして正解だったな

    358 = :

    >>357
    お前らって本当に頭悪いよな余計なことを妄想しすぎ
    >>140の回答はだな

    $('.aaa').attr('class', 'aaa');

    これで良いんだよ
    バカ

    360 = :

    >>140で話終わってないだろ

    143 名前:Name_Not_Found[sage] 投稿日:2018/01/28(日) 17:27:37.90 ID:???
    >>142
    そうなんだけど・・・の管理が面倒で
    変更の度にそこも付け加えなくてはならなくて
    最初つけるclassは1,2個と少ないので楽かなと

    361 = :

    > 最初つけるclassは1,2個と少ないので楽かなと
    と書いてある通り、最初につけるclassは.aaaだけとは
    限らないことが判明している。

    つまり本当はこう言っているわけだ

    $('.aaa').removeClass('bbb ccc ddd・・・');

    $('.aaa').removeClass().addClass('aaa ・・・');


    後者のほうが数が少なくてまだマシということだが、
    両方ともやりたくないのは>>143からわかるだろう
    (だからこそ>>140しか見ないようにしてるのだろうが)

    この2つの・・・の管理をしなくて済むのが
    data-*属性を使ったやり方なわけだよ

    362 = :

    >>358
    それだと.aaaにデザインの都合で新たなクラスを
    追加した時に、そのクラスまで消えてしまいますよね
    それを避けるにはどうしたら良いのでしょうか?
    なおデザイン側で追加されるクラスはわからないものとします

    363 = :

    >>362
    あくまでも>>140の質問に対して率直に回答
    結果としては < (elment) class="aaa" ...> にしたいということでしかない
    それは質問に対しての回答ではなく、与太話でしかない
    完結でしょ?

    364 = :

    >>361
    $('.aaa').removeClass().addClass('aaa'); と $('.aaa').removeClass().addClass('aaa ・・・');
    でhは全く結果が違うし、解釈も違うことが理解できないみたいだねw

    365 = :

    >>363
    ここは質問スレです。私の質問に答えてください

    366 = :

    >>364
    > 最初つけるclassは1,2個と少ないので楽かなと

    「最初つけるclassは1,2個」の意味を考えましょう

    $('.aaa').removeClass().addClass('aaa');
    最初につけるclassが2個だとして、これのどこにそれが書いてありますか?

    367 = :

    >>366
    $('.aaa').removeClass().addClass('aaa');
           ↑
    これのどこに最初のclassの数云々考える必要があるの?
    結果は class="aaa" しかあり得ないだろw
    >>361がclassが複数あるとか質問に沿わない自己解釈しているから言ってるだけ
    なんで必死に絡んでくるのか意味不明

    369 = :

    「最初つけるclassは1,2個」の意味を考えましょう

    370 = :

    質問を見れば最後は"aaa"のみで完結してるじゃん
    これ以上でも以下でもないと思うが外野の勝手な連想で
    ただ意味をこじ付けているだけにしか見えない
    学校で先生に問題はよく読みなさいと教わらなかったのかな?

    371 = :

    >>140
    > .aaaに動的に付けたclass(bbb ccc ddd・・・)の削除や付け直しを一括でしたく
    > $('.aaa').removeClass('bbb ccc ddd・・・');
    > を
    > $('.aaa').removeClass().addClass('aaa');
    > とするのはあり?

    372 = :

    >>361
    両方ともやりたくないとは言ってないよ

    やりたいことは
    $('.aaa').removeClass().addClass('aaa'); または
    $('.aaa').removeClass().addClass('aaa bbb');

    つまりccc ddd・・・を消したいと

    373 = :

    >>332
    そういうの荒れるからやめてくれ、マジで
    ここ参考になるのに

    375 = :

    >>372
    $('.aaa').attr('class', 'aaa'); または
    $('.aaa').attr('class', 'aaa bbb');
    いわゆる初期化だろw

    376 = :

    >>372
    > やりたいことは
    > $('.aaa').removeClass().addClass('aaa'); または
    > $('.aaa').removeClass().addClass('aaa bbb');
    >
    > つまりccc ddd・・・を消したいと

    $('.aaa').text('').text('aaa bbb');
    こんなことやりたいの?

    377 = :

    >>370
    ほんとそう思う
    自分目線でこうあるべきと勝手に進めてるのが一部

    378 = :

    >370
    > 質問を見れば最後は"aaa"のみで完結してるじゃん
    あんたの言う最後は>>140のことかな?

    >>143でこう言ってるのは無視してるのかな?

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

    379 = :

    >>370は問題を最後まで読まないやつだなw

    380 = :

    >>378
    >>372

    >>379
    >>370の通り

    381 = :

    >>379
    > >>370は問題を最後まで読まないやつだなw
    その通り

    382 = :

    ただの罵り合いで終了

    383 = :

    $('.aaa').attr('class', 'aaa');
     or
    $('.aaa').attr('class', 'aaa bbb');

    これが理にかなってると思う

    384 = :

    >>383
    ただそれだとデザインの都合で
    別のクラスが追加された時に
    メンテナンスが必要になるんですよね
    どうにかなりませんか?

    385 = :

    >>384
    > $('.aaa').removeClass().addClass('aaa'); または
    > $('.aaa').removeClass().addClass('aaa bbb');

    これをやるなら>>383の方がスマートで理論的と俺は見た
    理由は最終的には'aaa'(単一)か'aaa bbb'(複数)のクラス名に意図的に置き換えるから
    基本に数値にしても結果がわかっているなら num = 10 で良い、無理に nam = x + y などは不要
    これはどんな言語でも同じこと

    386 = :

    >>385
    デザインの都合でっていう話は完全無視?

    <span class="aaa"> とあって、
    デザイナーが この部分フォント大きくしたいなとか思って
    <span class="aaa hoge"> みたいに変更すると
    JavaScriptのコードの変更まで必要になってしまうんだよ

    他にもclassってことは複数のaaaがあることが想定されるが
    一つは <span class="aaa hoge"> 、もう一つは <span class="aaa hage">
    だったりしたら、困るだろ

    HTMLはプログラマとデザイナで共有している所だから
    お互いに相手に影響を与えないようにしないといけない

    387 = :

    >>386
    お互いに相手に影響を与えないようにしないといけないんだったら
    気軽にお互いがsourceを都合で勝手に変えるもんじゃないだろw
    共有しているのなら連携して修正しないとね

    388 = :

    >>387
    連携っていうのは、受け渡しの部分を最小限にして
    お互い独立して作業ができるようにすることだぞ

    何もかもがお互いに影響していたら
    連携というより相手の作業を邪魔することにしかならない

    389 = :

    影響を受けないように気をつけて作るのが仕事なんじゃないでしょうか・・

    390 = :

    そうだね。だからデザイナーがclassに付け足しても
    コードは影響がないように作るって話なんだよ
    やっとそこ(自分の担当外の仕事)まで考えられる人がでてきたか

    391 = :

    >>386
    インスタンスメソッドぐらい作成しろよ
    静的に追加したclassNameには 'org-' など任意の文字列を埋め込んでおいたら問題ないだろ?

    $('$.fn.extend({
    restoreClass: function () {
    let arr = [];
    $(this).attr('class').split(' ').map(function (a, b, c) {
    a.indexOf('org-') !== -1 ? arr.push(a) : void 0;
    });
    return $(this).attr('class', arr.join(' '));
    }
    });

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

    393 = :

    >>391
    > 静的に追加したclassNameには 'org-' など任意の文字列を埋め込んでおいたら問題ないだろ?

    > それは俺が>>210で提示したやり方ですね?
    そんなコードを書くのが無駄だと言ったコードを
    わざわざ書くとはw

    > としなければいけなくなるということ
    > そして、色やサイズのパターンが増えたらどうすんの?ということ
    >
    > ま、無理やりやろうとするなら、classの値に特殊な名前つけルールを作って
    > そのルールを解釈して操作する関数を作るなんて "無駄なこと" をやればできるがねw
    > > whiteとではなくcolor-whiteみたいにプリフィックス付けて全部列挙して color- だと・・・無駄だなw

    394 = :

    >>393
    デザインの都合でで使うクラス名の管理はデザイナーのお仕事ですw

    395 = :

    >>391
    それから、それ気持ち悪いコードですね。
    インスタンスメソッドというから何かと思えば
    jQueryプラグインですか? ならjQueryプラグインの書き方で書きましょうよw

    なってない。手本を見せてあげましょうか?

    それからほれjQueryプラグインの作り方
    http://learn.jquery.com/plugins/basic-plugin-creation/

    396 = :

    >>394
    はい?ですのでデザイナーに任せてデザイナーが
    何をしようとコードには影響を受けないようにすべきですね。

    397 = :

    じゃ、自由に任意の文字列を投げるようにしたらいいんじゃないの?w

    $.fn.extend({
    restoreClass: function (str) {
    let arr = [];
    $(this).attr('class').split(' ').map(function (a, b, c) {
    a.indexOf(str) !== -1 ? arr.push(a) : void 0;
    });
    return $(this).attr('class', arr.join(' '));
    }
    });

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

    398 = :

    >>391
    まず先にバグを指摘しておきますね
    org-bbb が org-aaa に変わってしまいます。

    <span class="org-aaa">span</span>
    <span class="org-bbb">span</span>



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



    <span class="org-aaa">span</span>
    <span class="org-aaa">span</span>

    399 = :

    >>397
    俺ならこうするなぁ。まdata-*属性使いたくないんでしょw
    もしくは最初の初期化時にdata()メソッドで初期クラスを保存するとかね

    <span class="aaa" data-original-class="aaa">span</span>

    400 = :

    >>399
    それそれ、人の意図だからそれで良いと思うよ
    data属性はあくまで適切な属性や要素がない場合を想定したものなので
    classで賄えるんだから俺はclassを使用することを推薦するよ


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

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


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