のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,686,909人
昨日: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一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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