jQuery 質問スレッド vol.8
■ このスレッドは過去ログ倉庫に格納されています
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/ classの使い方違うと言われそうだがあえて質問。
<li id="i" class="hage hoge a1">
<li id="ro" class="hage hoge a2">
<li id="ha" class="hage a3">
〜
<li id="ni" class="hage hoge a9">
<li id="ho" class="hoge a10">
liの数は10個固定。順序は動的に入れ替わる。
上のidは適当につけたもので、これは動的に変わらず(変えず)。
hage hogeはあったりなかったり、a○はどれかの数字で必ずある
a○の1〜10の数は固定で他の数字が入ることはない。
a2←→a9など動的に入れ替わる。
で、任意の、例えば#roのa○のその時点での数字を取得するにはどうしたらいいでしょうか?
attributesで取得して正規表現で探すとか…は面倒だし無駄だし。
属性使えばattr()で簡単にできるがclassでできないものかと思いまして。 >>4
順序が入れ替わるのなら index() は無意味なので
className から取るしか無いと思う
var num = (elm) => elm.attr('class').match(/a\d+/)[0].replace(/a/, '');
console.log(num($('#ro'))); >>4
class名をデータのように扱うなら、data-*属性を使う実装に変える方がいいと思う
classでやるなら、classListから正規表現を使う
> attributesで取得して正規表現で探すとか…は面倒だし無駄だし。
そもそも、class名から数字を抽出する処理が無駄なわけでclass名を使うことがナンセンスかと 無駄ナンセンス、やはりそうですか。
data-は動的に変更した時点で即CSSと連動できましたっけ?
a○は
.a1 {}
.a2 {}
.a3 {}
というふうにCSSのためなのです。 >>5
こういう記述はまだ早いという人のほうが多いんじゃないかな
今のうちこれにしても数年後スタンダードになってるとも思えん >>7
[data-hoge=a1] {
}
で定義できるよ。 datasetをcssでも使うならjQueryの.data()以外で読み書きしないとだめだな 即連動できるかに対して定義できるよって
ajax見たいにキャッシュ無効にできて即DOM書き換えられればいのにな 11だが俺も書き方悪かった
ようは誤解招きかねない書き方だなと
ネイティブjsでも書き換え必要→なら最初からattrでいいんじゃね?→
data-でなくユーザ指定の属性はいいのか、と
これやっちゃってる人多いと思う >>8
かっこつけて先走りしたはいいが後で書き直すパターンかもな。
>>10
開発者?はなんでこんな設計にしてしまったのだろう。
これでしかできなかったのかね。 無難に独自属性attr()でやる(すでにやってる)ことにします。ありがとう。 jQueryはCSSは相性いいが、jsとCSSはいまいちだな
オブジェクト(連想配列)がCSSのプロパティと連動できれば最高なんだが DOMではCSSは取得出来ないからな
相性どころか次元が違う もう入り始めてるけどCSS Typed OMで記述は長くなるかもしれないが
ロジック的にきれいに書ける ■ このスレッドは過去ログ倉庫に格納されています