X



jQuery 質問スレッド vol.8
■ このスレッドは過去ログ倉庫に格納されています
0001Name_Not_Found垢版2017/10/23(月) 06:31:18.14ID:???
JavaScriptでDOM用ライブラリであるjQueryのスレです。
次スレは>>950>>2のテンプレ案(本スレで改善案があれば考慮)を元に立ててください

このスレはjQueryやjQuery UIの使い方やjQueryプラグインの作り方を質問するスレです。
jQueryを使って作る側のスレであって、こんなプラグインありませんか?と聞くスレではありません。
そういうのは自分で探してください。
ろくにサポートもされてなさそうな野良プラグインの使用はおすすめしません。

JavaScriptの質問は関連スレで質問して下さい。

■前スレ
jQuery 質問スレッド vol.7
https://mevius.5ch.net/test/read.cgi/hp/1478055094/

■関連スレ
JavaScript の質問用スレッド vol.130
https://mevius.5ch.net/test/read.cgi/hp/1501503056/
ECMAScript デス 6
https://mevius.5ch.net/test/read.cgi/tech/1483332914/
JavaScript ライブラリ総合質問所 vol.5
https://echo.5ch.net/test/read.cgi/hp/1465399470/
0271Name_Not_Found垢版2018/02/11(日) 14:53:25.49ID:???
JSONで出し入れすればできる
強引だが
0272Name_Not_Found垢版2018/02/11(日) 14:59:04.25ID:???
でそのdata-*やら属性やらが「classよりいい」と関係してるのかね?
toggleClassや他のclassの削除はスルーなんかな
0273Name_Not_Found垢版2018/02/11(日) 15:03:19.43ID:???
それはJSONを使ってオブジェクトを文字列にすればって意味なので
属性にオブジェクトを入れてることにはならない

加えてJSON文字列に文字列化(シリアライズ)できないものや
情報が失われてしまうものがオブジェクトに
含まれている場合にもやっぱり対応できない

例えば関数とか日付型とかDOM要素とか。
JSONを拡張して頑張れば、少しはましになるかもしれないけど
DOM要素のシリアライズとかまず無理だろうね
0274Name_Not_Found垢版2018/02/11(日) 15:11:51.12ID:???
>>272
> でそのdata-*やら属性やらが「classよりいい」と関係してるのかね?
誤解されるような書き方をするな。わざとか?

> toggleClassや他のclassの削除はスルーなんかな
すでに回答済みだったはずだが?



もう一回書いてやると、
<span class="button color-white size-M">
みたいな書き方をしていて、colorは全12色みたいにもっと色があって
sizeにもS, M, L, LL みたいに複数サイズがあったとする

これをclassを操作して
<span class="button color-red size-l">
のように変えるのは大変。コード側に全ての色を定義して一旦全部
removeClassするか、全てのクラス値を列挙してプリフィックスで見分けるようなコードが必要になる

そういう使い方の場合、data-*属性のほうが、classを使うより良いという話

<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"}) これだけで終わり


こういう話が先にあって、その流れでdata-*やら属性やらが「classよりいい」と言ってる
0275Name_Not_Found垢版2018/02/11(日) 16:42:04.87ID:???
propっていう関数もなかったっけ?
あれはどういうときに使うべき?
使い分けの方針を教えてください。
0276Name_Not_Found垢版2018/02/11(日) 18:05:31.33ID:???
>少しは頭使ったら?
>priceをpliceと書き間違えるようなやつじゃ無理かw

こういう余計なこと書かなきゃいいのに
それで嫌われてるんだろうな

あ、自分で部下に頼れると自慢してた人かな?w
0279Name_Not_Found垢版2018/02/11(日) 18:48:22.80ID:???
>>278
> 「1つの属性に」オブジェクトを入れられないということでいいですよね

最初からそう言ってる。属性は文字列しか受け付けられないから
オブジェクトを入れようとしても文字列化される

data()メソッドはもともと要素に紐付いたデータを保存するための仕組みで
オブジェクト等自由に入れることができる。

data()メソッドはdata-*属性と無関係・・・と言いたいところだが
data()メソッドの初期値として利用される。だけどそれだけ。
基本的にはdata()メソッドはdata-*属性を読み書きするものじゃない


> 入れられないというか同時設定できるだけということでいいですよね
複数の属性に同時設定できるという機能を、属性にオブジェクトを代入できると
勘違いしてしまったかわいそうな人がいるという話。

何も言うが属性にはオブジェクト入れられない。入れられるのは文字列だけ。
だからattr()メソッドを使って複数の属性に値を入れようとしても、
入れられるのは文字列だけ。値がオブジェクトだと当然設定することはできない。

つまり
$('#hoge').attr({'data-price': {yen: 100, doller: 1.2}, 'data-size': 'L'});
みたいに、属性の値がオブジェクトになっていれば当然入れることはできない
0280Name_Not_Found垢版2018/02/11(日) 18:49:59.80ID:???
なるほど、attrで設定できるのは文字列だけってことだな
0281Name_Not_Found垢版2018/02/11(日) 18:50:13.94ID:???
>>262
<el data-*= 'value'>
$(el).data('value')
この値の扱いの違い例えてを言ってやって上げてるのに
おまえのオツムでは理解できないみたいだね
0282Name_Not_Found垢版2018/02/11(日) 18:52:06.79ID:???
<el data-*= 'value'> ってなんだ?

まさか * がいろんな文字を意味するってことすら
分かってないのか?
0283Name_Not_Found垢版2018/02/11(日) 18:53:41.90ID:???
ちょっとかわいそうなんで>>281に教えてあげると

$(el).data('value') で(あくまで初期値としてだが)
読み取るのはdata-value属性
data-*属性ではない。

data-valueという属性の名前になるんだよ
0285Name_Not_Found垢版2018/02/11(日) 18:59:57.07ID:???
>>279
>>259=>>278ですがどうも
それまでの他の書き込みに惑わされました
pliceは指摘ありがと(きついけど)
0286Name_Not_Found垢版2018/02/11(日) 19:03:22.35ID:???
結論としては、attrメソッドは属性に文字列を設定するものだから
当然オブジェクト入れられない、入れようとしても文字列化されるので
実質意味がない。

それに対してdataメソッドは内部的に要素に関連したデータを
持たせる物。だから文字列以外のオブジェクトをもたせることができる
同じdataで惑わされているようだが、attr(data-*)とdata(*)は
本質的には別物
0287Name_Not_Found垢版2018/02/11(日) 19:09:41.08ID:???
pliceといえばspliceとsliceでいつも混乱します。どうやって覚えたらいいですか?そもそもスライスは分かるけどspliceってどういう意味ですか?
APIにマイナーな英単語使うなや糞メリケンファック
0289Name_Not_Found垢版2018/02/11(日) 19:32:37.32ID:???
>>288
わかってるお前が解説しろ

本当に分かってないのはお前だろうからさ
0290Name_Not_Found垢版2018/02/11(日) 19:36:41.26ID:???
>>286
>>279
>$('#hoge').attr({'data-price': {yen: 100, doller: 1.2}, 'data-size': 'L'});
>みたいに、属性の値がオブジェクトになっていれば当然入れることはできない
は(私は最初から)okですが、とすると

>>208
>例えば、class="black white red yellow"
なんてことはせず、するなら例えば
class="black m cotton"
である場合、208のグループ化にメリットありますか?
0291Name_Not_Found垢版2018/02/11(日) 19:40:12.26ID:???
prop()との使い分けは?ねぇねぇ
0292Name_Not_Found垢版2018/02/11(日) 19:58:36.27ID:???
>>291
自分で調べてなかったの?

attrはHTMLの属性を読み書きするもの
propはHTMLの属性ではなくDOMのプロパティを読み書きするもの

DOMのプロパティを読み書きした結果、属性に反映されるかも知れないが
それはブラウザが勝手にやっていること

なので例えばchecked属性が空の時でも、attrで読み取るとundefiendであるが
DOMプロパティ的にはfalseなのでpropを使うとfalseになる

参照先がHTMLの属性かDOMのプロパティかの違いだよ
その点でattr()メソッドとcss()メソッドの関係と似ているね。
0293Name_Not_Found垢版2018/02/11(日) 19:59:48.34ID:???
>>290

> なんてことはせず、するなら例えば
> class="black m cotton"
> である場合、


どういう意味? まず日本語
0294Name_Not_Found垢版2018/02/11(日) 20:16:26.44ID:???
>>293
>>189のような場合は別として各classがかぶらない
blackはredやgreenになり、mはlやsになり
blackはmがあろうがなかろうが何の値だろうが関係なく、mもしかり

という場合です
0296Name_Not_Found垢版2018/02/11(日) 20:26:48.13ID:???
>>294
> blackはredやgreenになり

それをclassで実現するの大変なんだわ

だって、"hoge black" とかあって、
この内blackだけをredにするわけだろ?

この時、blackとred以外にどんな色があるかは不明とする。
またhogeはhoge以外にもどんなものが来るかは不明とする

この場合に、blackをredにする方法、どういうのがある?
0297Name_Not_Found垢版2018/02/11(日) 20:53:15.03ID:???
>>296
私ではありませんが>>153>>140とか
でも前者はmyTagsをいじるのかえって大変ですね
0298Name_Not_Found垢版2018/02/11(日) 20:55:48.57ID:???
>>297
そういうこと。それに比べてdata-*属性を使えば
単純な一メソッド呼び出しで完結してしまう
0299Name_Not_Found垢版2018/02/11(日) 21:10:54.37ID:???
それが合理的な方法であることは分かったけど>>140には「.aaaに動的に付けたclass(bbb ccc ddd・・・)の削除や付け直しを一括でしたく」って書いてあるから質問に対する答えになってなくね?
結局>>140に対する回答はどうなるの?
0300Name_Not_Found垢版2018/02/11(日) 21:15:39.71ID:???
>>299
回答なら書いてあるじゃん

142 名前:Name_Not_Found[sage] 投稿日:2018/01/28(日) 11:50:24.50 ID:???
>>140
それだと静的に付けたclassまで消えちゃうじゃん

143 名前:Name_Not_Found[sage] 投稿日:2018/01/28(日) 17:27:37.90 ID:???
>>142
そうなんだけど・・・の管理が面倒で
変更の度にそこも付け加えなくてはならなくて
最初つけるclassは1,2個と少ないので楽かなと
0301Name_Not_Found垢版2018/02/11(日) 21:24:41.98ID:???
直接的には書いてないけど、つまり>>140の質問に対する答えは「なし」ってことね。
0302Name_Not_Found垢版2018/02/11(日) 21:24:49.04ID:???
>>298
でグループ化とは?

>>299
静的に付けたclassが消えるのはいいとしてhasClassどうすんだ?ってなかったっけ?
0303Name_Not_Found垢版2018/02/11(日) 21:30:40.83ID:???
>>302
> でグループ化とは?

>>208に書いてあるよ
> 値をグループ化できる。複数の値を週類ごとにまとめたものがグループ
> classの場合は値を書くしかないから3つのグループがあって、一つのグループごとに
> 5個の値があれば、最大15個の値を管理する必要が出てくる
> data-*を使えば3つでいい(今は数が多くて管理が大変という話だというのを思い出そう)
> グループと値として管理できるのがメリット
0304Name_Not_Found垢版2018/02/11(日) 21:31:57.45ID:???
>>302
> 静的に付けたclassが消えるのはいいとしてhasClassどうすんだ?ってなかったっけ?

hasClassって、この場合、blackか?redか?greenか?・・・・その他色々な色か?って
ループでぐるぐる回していま何色か調べるってこと?

そりゃ大変そうだな。
0305Name_Not_Found垢版2018/02/11(日) 22:57:06.16ID:???
data-*属性をCSSのクラスリストのように使う方法

https://developer.mozilla.org/ja/docs/Web/CSS/Attribute_selectors
> [attr~=value]
> attr という名前の属性の値が空白区切りの語のリストで、その中の1つが正確に value と一致する要素を表します。

↑属性セレクタとしてこれがあるからできるんじゃないかと思ってみたら、
やっぱりできるもんだなぁ。data-*属性でhasClass相当ってこれでいいでしょ?

https://jsfiddle.net/s9epbv2k/
-------- html
<ul>
 <li data-test="foo bar">1</li>
 <li data-test="foo bar baz">2</li>
 <li data-test="foo baz bar">3</li>
 <li data-test="baz foo bar">4</li>
</ul>

-------- css
[data-test~="baz"] {
color: red;
}

-------- js
$('[data-test~="baz"]').on('click', function() {
 alert($(this).text())
})
$('li').on('click', function() {
 alert($(this).is('[data-test~="baz"]'));
})
0306Name_Not_Found垢版2018/02/11(日) 23:54:54.27ID:FNzc2dpv
>>269
var hash = {price: 100, size: "L"};

$('#id').data('value', hash);
console.log($('#id').data('value')); // => {price: 100, size: "L"}

ほう、price が数値型か。
ためになった
0307Name_Not_Found垢版2018/02/12(月) 08:28:42.43ID:???
立ち返っていうとですね
data属性を使わなくてもidとclassでどうにでもなることだとなんだけどねw
0308Name_Not_Found垢版2018/02/12(月) 09:58:07.12ID:???
>>304
全て調べるとは限らないぞ
greenが含まれているか否か、それだけの場合もある
0309Name_Not_Found垢版2018/02/12(月) 11:13:06.31ID:???
>>305
孫以下はどうするよ?has使うか?回りくどいな
0310Name_Not_Found垢版2018/02/12(月) 11:16:33.87ID:???
>>309
今はhasClassとの違いだったよね?

まずhasClassはこう書けるというのを示してくんない?
hasClassで孫以下はどうするのよ?


それにしても $(this).is('[data-test~="baz"]') は最強だな
セレクタ使うから、$(this).is('span [data-test~="baz"]')
みたいなことまでできるのが容易に思いつく


hasClassで孫以下はどうするのよ?
0311Name_Not_Found垢版2018/02/12(月) 15:26:16.07ID:???
セレクタよりなるべくメソッド使いたいもんだな
toggleClassはできそうだが問題は他のライブラリがつけたクラスだな
無視するかはその人次第なのでそうしろとか有り得んわ
0312Name_Not_Found垢版2018/02/12(月) 17:03:35.60ID:???
> セレクタよりなるべくメソッド使いたいもんだな

お前の好みなんかどうでもいい
0313Name_Not_Found垢版2018/02/12(月) 17:04:47.81ID:???
> 無視するかはその人次第なのでそうしろとか有り得んわ

無視するかはその人次第なので、
そうしろとか有り得んわ
なんて、お前が決めることではない
0314Name_Not_Found垢版2018/02/12(月) 17:33:00.27ID:???
そうだな、data-かclassかはお前が決めることではない
0315Name_Not_Found垢版2018/02/12(月) 17:38:10.80ID:???
単にこの問題に対してdata-*の方が優れているという
ことを論理的に説明しただけ。

これは決まっている事実を公表しただけ
俺が決めたわけじゃない
0316Name_Not_Found垢版2018/02/12(月) 22:52:55.64ID:???
詳細がわからない以上どっちもどっちだろ
どちらが優れていると確定できるわけがない
上で同じようなこと書いてる人がいたが各々好きにすればいいだけ
0317Name_Not_Found垢版2018/02/12(月) 23:01:02.40ID:???
>>316
話がごっちゃになってるぞ
最終的に選ぶのが聞いた人であって、
今回の話にdata-*が有利なのは単なる事実だ
0318Name_Not_Found垢版2018/02/12(月) 23:02:47.41ID:???
もともとclassでやると・・・の管理が面倒って話だからな
最初っからclassでは大変だっていう自覚はあったわけだ
それをどう解決すべきかがわからずclassで頑張ろうとしていただけで

143 名前:Name_Not_Found[sage] 投稿日:2018/01/28(日) 17:27:37.90 ID:???
>>142
そうなんだけど・・・の管理が面倒で
変更の度にそこも付け加えなくてはならなくて
最初つけるclassは1,2個と少ないので楽かなと
0319Name_Not_Found垢版2018/02/12(月) 23:12:07.25ID:???
data-でもそれはそれで面倒な点があるかもしれんだろうに
解決策は最初からほぼわかってた
ただ確信が持てないので聞いただけだろ

>とするのはあり?
0320Name_Not_Found垢版2018/02/12(月) 23:19:01.96ID:???
かも知れないなら、まず最初に質問者に聞くべきだな
自分の想像で、問題あるという前提で話をするのはやめろ
0321Name_Not_Found垢版2018/02/12(月) 23:20:27.30ID:???
仕様がこれ以上変わらないなら答えは「あり」
業務アプリ作ってんじゃねーんだぞアホらしい
0322Name_Not_Found垢版2018/02/12(月) 23:22:04.86ID:???
> 140
> .aaaに動的に付けたclass(bbb ccc ddd・・・)の削除や付け直しを一括でしたく
> $('.aaa').removeClass('bbb ccc ddd・・・');
> を
$('.aaa').removeClass().addClass('aaa');
> とするのはあり?

> 142
> >>140
> それだと静的に付けたclassまで消えちゃうじゃん

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


この一連の流れから明らかだな。
静的に付けたclassまで消えるのが問題だと認識してる。
0323Name_Not_Found垢版2018/02/12(月) 23:23:15.97ID:???
>>321
> 仕様がこれ以上変わらないなら答えは「あり」

何言ってんだ?

removeClassが消えるのは嫌だけど・・・が面倒だって話だろ
ならもっといい方法がないか探してるってことだよ
0324Name_Not_Found垢版2018/02/12(月) 23:24:56.17ID:???
はっきりさせておこう。

この例では、classを使うよりdata-*属性を使ったほうが良い
ここまではみんなOKだよな
0326Name_Not_Found垢版2018/02/12(月) 23:26:49.69ID:???
ということは、あとはclassを使うか、data-*を使うかは
質問者が選ぶことだ。

回答者としては、質問者へ回答を書くのみ
classを使った案とdata-*を使った優れた案がでた

この段階でclassを押し付けるのはおかしい
0327Name_Not_Found垢版2018/02/12(月) 23:31:25.91ID:???
質問者の >>140>>142 から

> .aaaに動的に付けたclass(bbb ccc ddd・・・)の削除や付け直しを一括でしたく
ということにたいして

> $('.aaa').removeClass().addClass('aaa');
という回答は

静的に付けたclassが消えるという問題があると
質問者と回答の双方が認識しているわけだ

問題があると認識してる時点で
この質問は「なしだけどしかたないのかなぁ」という話に変わったわけだ
0328Name_Not_Found垢版2018/02/12(月) 23:34:53.40ID:???
もし静的に付けたclassが消えてもいいというのなら
>>143は「静的に付けたclassが消えても問題ないです」とい
レスになっていただろう。

だが>143は、消えちゃうんだけど(それを避けようとすると)・・・の管理が面倒になる
という話をしているわけだ。

この流れで、もっと良い案、data-*属性を使ったやり方が出るのは当然だろう
0329Name_Not_Found垢版2018/02/12(月) 23:46:44.56ID:???
>>323
>removeClassが消えるのは嫌

捏造しないように
むしろいいかもしれんぞ
0330Name_Not_Found垢版2018/02/12(月) 23:48:09.67ID:???
捏造も何もちゃんと書いてあるじゃん

> 142
> >>140
> それだと静的に付けたclassまで消えちゃうじゃん

> 143
> >>142
> そうなんだけど・・・の管理が面倒で
0331Name_Not_Found垢版2018/02/12(月) 23:50:57.53ID:???
みなさんいろいろすみません>>140です
こういうの書くと成りすましに見られるから控えていたのですが

>>328
静的に付けたclassは消えても問題ないです
ただのセレクタ役だし、またつければいいだけで
0333Name_Not_Found垢版2018/02/12(月) 23:55:07.69ID:???
顧客が本当に必要だったものワロタwwwww
0334Name_Not_Found垢版2018/02/12(月) 23:55:28.16ID:???
>>331
> ただのセレクタ役だし、またつければいいだけで

ただのセレクタ役とは?
またつければいいというのは、どうやって?
0335Name_Not_Found垢版2018/02/13(火) 00:12:21.11ID:???
>>332
こういうのがいるから後から書きづらくなるんだよな
スレに悪影響以外何者でもない

>>334
出てるじゃん
0336Name_Not_Found垢版2018/02/13(火) 00:14:07.80ID:???
>>330
嫌と書いてないのを君が証明してどうするよw
0337Name_Not_Found垢版2018/02/13(火) 00:18:58.36ID:???
>>326
押し付けてるアンカよろ
どっちでもいいは幾つかあるが
0338Name_Not_Found垢版2018/02/13(火) 00:21:37.55ID:???
>>335
でてるじゃんじゃなくて、
どこにでてるのかって話だ

>>334
で、ただのセレクタ役とは?
またつければいいというのは、どうやって?
0339Name_Not_Found垢版2018/02/13(火) 00:22:33.11ID:???
どっちを使えとか押し付けてはいないな。
ただこの場合はdata-*属性を使ったほうが
シンプルに実装できるってだけの話だ
0340Name_Not_Found垢版2018/02/13(火) 00:25:02.39ID:???
確かにいままで出た条件の範囲では
data-*属性のほうが良いかもしれないけど

もしかしたら、明らかになってない条件の中に
data-*属性じゃだめな理由があるかもしれないだろ!
お願いだ。それを誰か書いてくれ
このままじゃ負ける
0342Name_Not_Found垢版2018/02/13(火) 00:49:54.45ID:???
なりすましするなら最後まで本人になりきって
質問に答えなきゃだめだろw
中途半端なことをするから余計怪しまれる
0343Name_Not_Found垢版2018/02/13(火) 09:14:17.29ID:???
>>140
> $('.aaa').removeClass().addClass('aaa');
> とするのはあり?
'.aaa'というセレクタで指定していることから静的に
追加したclassを変更する意図とケースは無いと見られる
後から追加されたclassNameは必ず後に追加されるので
>>144で答えは出ていると思うけどね
0345Name_Not_Found垢版2018/02/13(火) 09:46:47.03ID:???
>>344
条件次第だけどそうだと思うけどね?
jQueryでも古いバージョンにはセレクタのプロパティーがあったんだよね
最近のバージョンではなくなっているけど
$('.aaa').selector // '.aaa'
これを活用してインスタンスメソッドを作成しておくってこともできたんだけど
0346Name_Not_Found垢版2018/02/13(火) 09:47:52.64ID:???
何こいつ問題あるかないかにこだわってるんだろう
しかも質問者じゃない人のレスで満足して。
誰かに問題ありませんって言ってほしいだけかよw
承認欲求ってやつだな
0347Name_Not_Found垢版2018/02/13(火) 09:51:14.33ID:???
>>343
> '.aaa'というセレクタで指定していることから静的に
> 追加したclassを変更する意図とケースは無いと見られる

静的に追加したclassっていうのを誤解してるんじゃね?
JavaScriptで追加したものじゃなくて、HTMLに書かれた
classって意味だよ。デザインの都合で。

JavaScriptの役目としては、コードで付けたもの以外は
そのまま残しておく。だからremoveClassで全部消えちゃうのは
まずいわけ
0348Name_Not_Found垢版2018/02/13(火) 09:52:25.13ID:???
>>345
> これを活用してインスタンスメソッドを作成しておくってこともできたんだけど

こっちはまったく意味不明。何がしたいのかさっぱりわからない。
0349Name_Not_Found垢版2018/02/13(火) 10:11:01.08ID:???
>>347
>>144だと全部消えないだろ?
あくまで静的なclassNameは'aaa'での条件
質問の条件に対してことだよ
自己解釈しているのはアンタの方だろ?w
>>348
これは以前のjQueryにおいてのこと
0350Name_Not_Found垢版2018/02/13(火) 10:57:12.25ID:???
>>349
だから.aaa以外の静的に付けたものは消えるじゃん
それにそのコードだとaaaが2番目以降に来ると問題が有るし
0351Name_Not_Found垢版2018/02/13(火) 10:59:09.70ID:???
> 最初つけるclassは1,2個と少ないので楽かなと
と書いてある通り、1個とは限らないしね
0352Name_Not_Found垢版2018/02/13(火) 11:03:00.53ID:???
>>349
> これは以前のjQueryにおいてのこと

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

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

alert($('.aaa').selector); // .aaa
0353Name_Not_Found垢版2018/02/13(火) 11:07:34.57ID:???
>>350
>>140にはそんなことは書いていないだろ?w
最後に.addClass('aaa')で完結している
0354Name_Not_Found垢版2018/02/13(火) 11:11:53.19ID:???
>>352
セレクタを参照してそれ以外のclassを削除するというインスタンスメソッド
0355Name_Not_Found垢版2018/02/13(火) 11:13:29.09ID:???
>>353

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

143 名前:Name_Not_Found[sage] 投稿日:2018/01/28(日) 17:27:37.90 ID:???
>>142
そうなんだけど・・・の管理が面倒で
変更の度にそこも付け加えなくてはならなくて
最初つけるclassは1,2個と少ないので楽かなと
0356Name_Not_Found垢版2018/02/13(火) 11:15:01.17ID:???
>>354
> セレクタを参照してそれ以外のclassを削除するというインスタンスメソッド

だから、<span class="btn aaa">span</span>
aaaを参照して静的に書かれたbtnまで削除してしまう
使えないメソッドですねって言ってんだよw
0357Name_Not_Found垢版2018/02/13(火) 11:29:04.63ID:???
そもそもselectorを使うってセンス悪いわ

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

セレクタがクラスの場合に限り、セレクタに
一致するものを除いて削除するメソッドとか
設計的に気持ち悪い。selectorなくして正解だったな
0358Name_Not_Found垢版2018/02/13(火) 11:54:15.83ID:???
>>357
お前らって本当に頭悪いよな余計なことを妄想しすぎ
>>140の回答はだな

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

これで良いんだよ
バカ
0359Name_Not_Found垢版2018/02/13(火) 11:56:11.30ID:???
>>356
> $('.aaa').removeClass().addClass('aaa');
この結果から他にclassが存在しないだろ
バカ
0360Name_Not_Found垢版2018/02/13(火) 12:35:43.21ID:???
>>140で話終わってないだろ

143 名前:Name_Not_Found[sage] 投稿日:2018/01/28(日) 17:27:37.90 ID:???
>>142
そうなんだけど・・・の管理が面倒で
変更の度にそこも付け加えなくてはならなくて
最初つけるclassは1,2個と少ないので楽かなと
0361Name_Not_Found垢版2018/02/13(火) 13:09:00.19ID:???
> 最初つけるclassは1,2個と少ないので楽かなと
と書いてある通り、最初につけるclassは.aaaだけとは
限らないことが判明している。

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

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

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


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

この2つの・・・の管理をしなくて済むのが
data-*属性を使ったやり方なわけだよ
0362Name_Not_Found垢版2018/02/13(火) 14:18:20.70ID:???
>>358
それだと.aaaにデザインの都合で新たなクラスを
追加した時に、そのクラスまで消えてしまいますよね
それを避けるにはどうしたら良いのでしょうか?
なおデザイン側で追加されるクラスはわからないものとします
0363Name_Not_Found垢版2018/02/13(火) 16:13:02.54ID:???
>>362
あくまでも>>140の質問に対して率直に回答
結果としては < (elment) class="aaa" ...> にしたいということでしかない
それは質問に対しての回答ではなく、与太話でしかない
完結でしょ?
0364Name_Not_Found垢版2018/02/13(火) 16:20:22.09ID:???
>>361
$('.aaa').removeClass().addClass('aaa'); と $('.aaa').removeClass().addClass('aaa ・・・');
でhは全く結果が違うし、解釈も違うことが理解できないみたいだねw
0365Name_Not_Found垢版2018/02/13(火) 16:37:46.03ID:???
>>363
ここは質問スレです。私の質問に答えてください
0366Name_Not_Found垢版2018/02/13(火) 17:08:53.66ID:???
>>364
> 最初つけるclassは1,2個と少ないので楽かなと

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

$('.aaa').removeClass().addClass('aaa');
最初につけるclassが2個だとして、これのどこにそれが書いてありますか?
0367Name_Not_Found垢版2018/02/13(火) 18:36:38.06ID:???
>>366
$('.aaa').removeClass().addClass('aaa');
       ↑
これのどこに最初のclassの数云々考える必要があるの?
結果は class="aaa" しかあり得ないだろw
>>361がclassが複数あるとか質問に沿わない自己解釈しているから言ってるだけ
なんで必死に絡んでくるのか意味不明
0368Name_Not_Found垢版2018/02/13(火) 18:40:19.22ID:???
$().addClass('aaa'); とかしたら
jQueryが「classNameはaaa以外にありませんか?」とか一々聞いてくるのかよw
0369Name_Not_Found垢版2018/02/13(火) 18:50:09.93ID:???
「最初つけるclassは1,2個」の意味を考えましょう
0370Name_Not_Found垢版2018/02/13(火) 19:25:41.84ID:???
質問を見れば最後は"aaa"のみで完結してるじゃん
これ以上でも以下でもないと思うが外野の勝手な連想で
ただ意味をこじ付けているだけにしか見えない
学校で先生に問題はよく読みなさいと教わらなかったのかな?
0371Name_Not_Found垢版2018/02/13(火) 19:30:38.52ID:???
>>140
> .aaaに動的に付けたclass(bbb ccc ddd・・・)の削除や付け直しを一括でしたく
> $('.aaa').removeClass('bbb ccc ddd・・・');
> を
> $('.aaa').removeClass().addClass('aaa');
> とするのはあり?
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況