X



jQuery 質問スレッド vol.8
レス数が950を超えています。1000を超えると書き込みができなくなります。
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/
0889Name_Not_Found
垢版 |
2018/04/17(火) 10:52:37.64ID:???
>>888
> if (!$('セレクタ').children().length) {
典型的な手続き型的なコードだねw
通常は「lengthみて要素があるかどうかを確認する」というコードはまるまる省ける。
状況にもよるだろうけど、俺はこれが必要な場合を思いつかない


で、回答だけど、まずCSSを使って、セレクタ:empty { display: none; } じゃいかんの?
わざわざremoveしなくても、画面上見えなくていいのであればコレでいける
ただしセレクタの中にはスペースなども含めて完全に空になってないといけないけど


次に実際に消す方法として、:has疑似クラスを使ったもの
$('セレクタ:not(:has(*))').remove();

:has擬似クラスはCSS4相当のものでブラウザネイティブでは実装されていないが、
jQueryは独自で実装しているので使える。IE11でも動いた。
https://api.jquery.com/has-selector/

こっちは完全に空じゃなくてもいいけど、タグなしで直接テキストが書かれていても
消えてしまう。といってもそれは>>888も同じだから問題ないだろう

あとはjQueryの.not や .has メソッドを使って
これと同じような結果になるコードをかけばできると思うけど
ちょっと面倒そうだな
0890Name_Not_Found
垢版 |
2018/04/17(火) 12:42:32.52ID:???
>>889
ありがとうございます
フィルタで絞り込むという発想がなかったので、学びが大きかったです
:hasとか:notとかはじめて使いました
ありがとうございました
0891Name_Not_Found
垢版 |
2018/04/17(火) 14:44:12.90ID:???
hasフィルタ/メソッドの対象は子要素ではなく子孫要素なんですね
子要素と書いているサイトが大量にありますが・・
対象を子要素に限りたい場合はどう書くのがいいのでしょうか?
0892Name_Not_Found
垢版 |
2018/04/17(火) 15:58:38.12ID:???
>>891
え?

子要素がない時はremoveする
ただし子要素が無くて子孫要素がある場合はremoveしたくない
ってこと?

子供がいないなら孫もいないでしょ?
0894Name_Not_Found
垢版 |
2018/04/17(火) 16:56:31.35ID:???
>>892
いえ、それはもう解決したので
別の話としてです
0895Name_Not_Found
垢版 |
2018/04/17(火) 17:02:07.73ID:???
>>893
試してみましたが子孫も含まれるようです
0897Name_Not_Found
垢版 |
2018/04/17(火) 18:43:46.53ID:???
>>896
すみません
書こうと思って見直していたら、
要素セレクタ部分が深い階層の要素にマッチしていたための勘違いと分かりました
要素セレクタ部分を第一階層にしかマッチしないようにしたら、たしかに子要素だけに限定出来ました!
ありがとうございます
ですが、「>」を最初に置く書き方はどんな意味になるのでしょうか?
jQueryを結構長く使ってきたつもりですが、こういう書き方を今まで見たことがありません
0898Name_Not_Found
垢版 |
2018/04/17(火) 18:54:19.38ID:???
> ですが、「>」を最初に置く書き方はどんな意味になるのでしょうか?

CSSの基本だから調べて
:hasはjQueryによって先行してサポートされた疑似セレクタだが
文法自体はjQueryが決めたものじゃないし
基本的なものはCSSのセレクタとまったく同じ
0900Name_Not_Found
垢版 |
2018/04/17(火) 19:44:07.38ID:???
CSSの親子関係の>と同じなのですね
>.hoge

*>.hoge
つまり
「何らかの要素の子要素の.hoge」
という意味になって、
これをhasと組み合わせることで子要素だけが選択できているのですね
親子セレクタの>は知っていましたが
特定数の階層を示す未知の記法なのかと思って混乱してしまいました
ありがとうございました
0902Name_Not_Found
垢版 |
2018/04/17(火) 22:43:02.39ID:???
>>901
やってみなければわからない。

ほらよ「jquery selector vs find https://jsperf.com 」で検索して
探してきてやったぜ。

https://jsperf.com/jquery-children-vs-find/37

Chromeだと、$('#formElem fieldset'); の方が速くて
Edge、IE、Firefox だと $('#formElem').find('fieldset') の方が速いんだな

理想的な結果だ。ブラウザによって違う。そんなの気にしたってしょうがない。
実用上問題ないなら気にすんな




どうでもいいが、EdgeだとChrome 58.0.3029と判定されるのな

Microsoft Edgeのユーザーエージェントがカオスなので注意
https://qiita.com/tonkotsuboy_com/items/7b36bdfc3a9a0970d23b
> Mozilla/5.0 (Windows NT 10.0; Win64; x64; ServiceUI 11)
> AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299
0903Name_Not_Found
垢版 |
2018/04/17(火) 22:44:18.45ID:???
あー、よくみりゃこれjQueryのバージョン低いな
0904Name_Not_Found
垢版 |
2018/04/17(火) 22:51:58.13ID:???
jsperf、githubアカウントが必要になったから面倒なんだよな
でもまあ1系でもquerySelectorAll使われてるし結果に大差はないだろ
0905Name_Not_Found
垢版 |
2018/04/18(水) 00:35:20.64ID:???
>>902
気にすることでもないのですね
ありがとうございました
0906Name_Not_Found
垢版 |
2018/04/18(水) 13:35:25.47ID:???
えー、何今みんなセレクタ使ってるんか?
速度差気にするほどでないのはもっともだが統一性からもメソッド使ってるわ
0908Name_Not_Found
垢版 |
2018/04/18(水) 22:25:44.36ID:???
$('#myContainer a');
じゃなくて
$('#myContainer').find('a');
こう書くってことだろ?

でも、 '#myContainer' も 'a' もセレクタなんだよねw
統一性をもたせるならむしろセレクタにしたほうが良い
0909Name_Not_Found
垢版 |
2018/04/18(水) 23:10:21.90ID:???
いやだからどっちもセレクタなんだろ?
0910Name_Not_Found
垢版 |
2018/04/18(水) 23:57:00.16ID:???
>>908
最初のセレクタは減らしてその後絞った方がいい
で統一ってことだろ
以前から書籍やブログで書かれている
0911Name_Not_Found
垢版 |
2018/04/19(木) 00:03:08.50ID:???
でも
Chromeだと、$('#formElem fieldset'); の方が速くて
Edge、IE、Firefox だと $('#formElem').find('fieldset') の方が速いんだな
0912Name_Not_Found
垢版 |
2018/04/19(木) 00:03:47.71ID:???
以前から書籍やブログで書かれているからって
あてにならないですねーw
0913Name_Not_Found
垢版 |
2018/04/19(木) 00:24:36.14ID:???
全部JSで書かれているならセレクタのパースの方が遅くなるはずですが
querySelectorはネイティブコードなので速くなってるのでしょうね
0914Name_Not_Found
垢版 |
2018/04/19(木) 10:49:10.87ID:???
>>910
それは 高速化のため? 可読性のため?

場合によるけど、ほとんどの場合セレクタに書いた方が
可読性が高まって良いと思うよ

場合によるけど、時代や環境・実装によって変わる高速化より
可読性を優先した方が良いと思うよ
0915Name_Not_Found
垢版 |
2018/04/19(木) 19:57:35.89ID:???
速度でメソッド使ってるわ
もっとも3になってからは速度面では知らん
可読性ではどっちも変わらん

:has/has()、:first/first()、:eq/eq()など、またチェーンメソッドではどうなんだろ
0917Name_Not_Found
垢版 |
2018/04/19(木) 21:50:34.59ID:???
>>915
jQueryは1でも後半のはquerySelectorAllとか使ってる。
そもそも1と2は、1の方が対応している(古い)ブラウザが多いという
違いなので2でやってることは全て実装されていると考えるべき
3は統合版なので言うまでも無くだな
0918Name_Not_Found
垢版 |
2018/04/20(金) 00:10:12.72ID:???
なんで1と2になってるんだ?
0919Name_Not_Found
垢版 |
2018/04/20(金) 01:26:43.41ID:???
1系はIE6以降対応で、2系はIE6〜8を切り捨てたもの。
(当時の)最新ブラウザには1系も2系も対応していた。
だから2系の方がファイルサイズは小さいが、
対応ブラウザは1系の方が多い状況だった

1系と2系は機能的には一緒でともに機能追加・メンテナンスも続いた。
通常であれば1系は古いバージョンで新機能は2系のみというのが
一般的なバージョンの分け方なのに、jQueryはそうなっておらず
混乱をもたらすということで、3系として合流することになった。

この時、通常のjQuery 3.0とは別に古いブラウザ対応のjQuery compat 3.0
というのが作られる予定だったが、IE8のサポート終了が早まったために
IE9以降対応のjQuery 3.0はに一本化された
0920Name_Not_Found
垢版 |
2018/04/20(金) 05:28:09.34ID:???
code.jquery.comの証明書が死んで、そこらじゅうのサイトが余波で崩壊してるね
とりあえずセキュリティ例外にぶっこめば動くには動くが・・・セキュリティ面でもサイト利用者にそれを求めるのかって点でもマズイな
0921Name_Not_Found
垢版 |
2018/04/20(金) 08:47:18.50ID:???
jQueryニキどういうこと!説明して!
0922Name_Not_Found
垢版 |
2018/04/20(金) 08:58:28.13ID:???
証明書とは・・?
籠池・・さん?でしたか?
0923Name_Not_Found
垢版 |
2018/04/20(金) 12:05:34.30ID:???
最近書き始めた者です。
jQuery用の入力候補とかインテリセンスを使っている人いますか?
0924Name_Not_Found
垢版 |
2018/04/20(金) 12:30:04.63ID:???
VSCodeを使っていますが、jQueryのメソッドも補完されますね
標準機能によるものなのか拡張機能によるものなのかは分かりませんが
0925Name_Not_Found
垢版 |
2018/04/20(金) 21:01:37.49ID:???
>>919
そんな基本的なこと長文書かなくてもわかってるから大丈夫
なぜ1と2の違いという全然関係ない話題に持って行こうとしてるのかということ
0926Name_Not_Found
垢版 |
2018/04/20(金) 23:30:47.85ID:???
>>925
それはそれとして、じゃあなんで1と2になってるんだ?
0928Name_Not_Found
垢版 |
2018/04/21(土) 00:02:08.92ID:???
えぇ…ニュースくらい見とけや……
0929Name_Not_Found
垢版 |
2018/04/21(土) 00:09:10.58ID:???
jQuery公式のCDNの証明書切れは
NHKで放送されるレベルだぞ
0931Name_Not_Found
垢版 |
2018/04/21(土) 11:40:57.73ID:???
>>930
なに言ってるんじゃなかくて、
なんで1と2になってるんだ?って
聞いてるんだが?
0932Name_Not_Found
垢版 |
2018/04/21(土) 11:43:43.74ID:???
さすがニュースは違うな。jQueryのCDNでトラブルがあった時、
jQuery使うなとかCDNを使うなという話ではなく
HTML標準ににフォールバック機能がないことが問題という話になってる
0935Name_Not_Found
垢版 |
2018/04/21(土) 15:21:43.98ID:???
サーバーが落ちるなんてことは普通に想定しておかなければ駄目なのでは?
CDNを使う限りあり得る問題なのでjQueryガーとか言ってる連中はアホですね?
0936Name_Not_Found
垢版 |
2018/04/21(土) 16:07:22.70ID:???
サーバが落ちることを想定してるからCDN使うんだが
0937Name_Not_Found
垢版 |
2018/04/21(土) 16:46:07.52ID:???
>>935
CDNとjQueryが何の関係があるの?
自分のサーバーで配信すればいいだけでしょ?
HTML標準にないだけで、CDNが落ちたら自分のサーバーに
置いたjQueryを使うという手法も有るしさ
0938Name_Not_Found
垢版 |
2018/04/21(土) 17:18:51.05ID:???
まずjQuery公式チュートリアルからcdn からロードしてる記述駆逐しようぜ!
個人の技術ブログとかのコードにもcdnからロードしてる箇所あったら取り締まって吊し上げよう。
cdn使うことで速度ガーとかキャッシュガーとか書いてる無責任サイトも潰そう。
0939Name_Not_Found
垢版 |
2018/04/21(土) 17:36:29.73ID:???
> 潰そう。
無理じゃね? どうせお前本気じゃないし
できやしないことを語っても、虚しいだけだよ
0940Name_Not_Found
垢版 |
2018/04/21(土) 18:04:15.11ID:???
CDNが落ちてる時にjQueryを自サイトから読む
という処理をするにはどうしたらいいですか?
0941Name_Not_Found
垢版 |
2018/04/21(土) 18:08:57.59ID:???
一番簡単な実装は

<script src="cdn/jquery.js"></script>
<script>if(!jQuery) document.write('<script src="自サイト/jquery.js"></script>')</script>
0942Name_Not_Found
垢版 |
2018/04/21(土) 18:45:04.61ID:???
ありがとうございます
ということはスクリプトファイルの読み込みが終わるまで次のコードを実行しないようになっている
ってことですね
いや、そりゃそうか・・
ありがとうございました
0943Name_Not_Found
垢版 |
2018/04/21(土) 18:58:29.36ID:???
"</script>" はHTMLの終了タグと間違われるから
"</sc" + "ript>" みたいにしないとだめだけどな
0945Name_Not_Found
垢版 |
2018/04/21(土) 21:03:56.86ID:???
2から3への違いならまだしも1を比較に出す意味がわからんよな
そもそも元の論点そこじゃないし
0946Name_Not_Found
垢版 |
2018/04/22(日) 00:01:17.83ID:???
そんな事どうでもいいんだよ
なんで1と2になってるんだ?
なんでコレに答えられないの?
0947Name_Not_Found
垢版 |
2018/04/22(日) 04:51:22.00ID:???
質問が日本語として意味不明だから
0948Name_Not_Found
垢版 |
2018/04/22(日) 08:38:01.80ID:???
>>918>>917に対して←これはわかる
>>926>>925に対して
>>918>>926は別人
ここまでは確か

同じ質問をしていることが意味不明だし、逆に聞かれて答えてないし
ただの荒らし行為にしか見えん
0949Name_Not_Found
垢版 |
2018/04/27(金) 06:25:41.76ID:???
>>910,911
ブラウザはここ1,2年でCSSエンジン周りにも力入れてて
セレクタもキャッシュが効くようにもなってきてるから
間接的にjQueryからquerySelectorを呼ぶセレクタなら
一纏めにしたほうが良いと思う
0950Name_Not_Found
垢版 |
2018/04/28(土) 15:19:44.90ID:???
.delay(10000).fadeOut('slow')
のように10秒後にフェードアウトする処理があって
フェードアウトする前に再び呼び出された時には前回のフェードアウト予約をキャンセルしたい場合は
どうすればいいのでしょうか?
0951Name_Not_Found
垢版 |
2018/04/28(土) 15:54:24.63ID:???
http://jsbin.com/mememujalo/edit?html,css,js,output

stopでdelayもキャンセルできるとネットには書いてあるのですが
15秒後にフェードアウトするようにして
10秒くらいの段階で「表示」をクリックして再び実行すると
5秒後にフェードアウトを開始します
つまりキャンセル出来ていないようです
どこが間違っているのでしょうか
0952Name_Not_Found
垢版 |
2018/04/29(日) 20:36:11.44ID:???
jqueryで、
ある要素をhideした時にイベントを発火するようにする
みたいなことできますか?
0954Name_Not_Found
垢版 |
2018/05/01(火) 18:31:02.21ID:l1wYHpV1
誰でもできる在宅ワーク儲かる方法
少しでも多くの方の役に立ちたいです
グーグルで検索するといいかも『金持ちになりたい 鎌野介メソッド』

7MVQ5
0958Name_Not_Found
垢版 |
2018/05/03(木) 14:51:52.20ID:???
…それそのスタックオーバーフローのコメント欄で聞けばよくね?
0959Name_Not_Found
垢版 |
2018/05/03(木) 15:25:47.67ID:???
don't need the .show()
と言われてもノーコメントのところを見ると答えてくれるとは思えませんが?
0960Name_Not_Found
垢版 |
2018/05/03(木) 15:32:28.19ID:???
>>957
考え方がそもそも間違っている。
cssを直接変更するのは最後の手段
基本的にclass(もしくはその他の属性)を書き換えるようにする

例えば $('#myFlexbox').addClass('active') みたいにして
CSSで、#myFlexbox.active { display: flexbox } のようにする
JavaScriptでやるのはclass等の書き換え。見た目はCSSで記述する
0961Name_Not_Found
垢版 |
2018/05/03(木) 15:33:00.65ID:???
任意数のDOM要素が入った配列があります
その要素を500msの間隔を置いて一つ一つコンテナ要素に追加していきたいのですが
どう書けばいいでしょうか?
0962Name_Not_Found
垢版 |
2018/05/03(木) 15:34:26.28ID:???
>>960
ああ、なるほど・・
その方が綺麗ですね
ありがとうございました
0963Name_Not_Found
垢版 |
2018/05/03(木) 15:39:21.45ID:???
なお、showの仕様は昔から変わっているはず
また、flexboxは比較的新しい機能だから
使えないブラウザがある(あった)

そのコードのshowは、昔の仕様の
display:blockにする"以外"の処理に依存している部分が
あったからかもしれないし、display:flexに対応していないブラウザでは
display:blockを使うことでほぼ同じ動きになっていたのかもしれない
0964Name_Not_Found
垢版 |
2018/05/03(木) 16:49:22.37ID:???
使えないブラウザがあるとか言うのはいい加減もう良いよ
そもそもそんな貧相なブラウザを使い続けてる人がリッチな表示に期待してるはずがない
むしろ、そういう環境は往々にしてスペックが貧弱だから素朴で最低限な表示の方がありがたいんだよ
だからそういう環境はJS無効組とかとまとめて、切り離して扱うくらいがちょうどいいんだよ

同じ表示、体験に拘る必要は無い
そうすればリッチ組に割く労力も減るし、読み込ませるリソース量も最低限で済む
0965Name_Not_Found
垢版 |
2018/05/03(木) 17:11:00.86ID:???
>>964
いきなり何脈絡のない話してんの?
誰に何を言ってるのかさっぱりわからないんだが
0966Name_Not_Found
垢版 |
2018/05/03(木) 17:56:27.93ID:???
flexboxが使えないブラウザがあるから、代わりにこうすると良いかもとか考えだすとキリがないし、
結局いつまで経っても新しい物を使えないか、重厚なフレームワークやライブラリを噛ますようになるだろ
無駄なのよ

もうね、寝たきりのおじいちゃんをGWだからとどうにかして海に連れて行くことを考えるのは辞めろということ
爺はベッドに寝かせたまま海の動画を見せとくくらいで良いんだよ

flexbox使おうかなと思ったんなら堂々とそのまま使えばいい
無駄なことを考えるのは辞めろ
0967Name_Not_Found
垢版 |
2018/05/03(木) 18:05:29.88ID:???
なんだ馬鹿か
話の流れも見ないで、使えないブラウザがあるって
言葉をみて、トチ狂って書き込んだだけのアホだな
0968Name_Not_Found
垢版 |
2018/05/03(木) 18:45:14.15ID:???
>>964
リッチというほどでもないしJS切捨ては飛躍しすぎだろ
0970Name_Not_Found
垢版 |
2018/05/03(木) 23:25:24.74ID:???
下腹部をhideしてから女子高生の前でshowしてみたら、
問題ありで逮捕されました
変なおじさんで笑って済ませられたのは昔の話だったのですね
ありがとうございました
0971Name_Not_Found
垢版 |
2018/05/04(金) 00:40:53.67ID:???
Bootstrap Multiselectを使用しているのですが、
すれ違いですかね。

プルダウンメニューが開かれたままで最初は開閉ができないのがどうにかならないのかと思いまして。
0972Name_Not_Found
垢版 |
2018/05/04(金) 09:37:21.60ID:???
>>949
その根拠(ソース)は?

全てのブラウザにもそれが通用する?特にOpera miniなどドロ用など
0973Name_Not_Found
垢版 |
2018/05/04(金) 11:56:20.02ID:???
>>972
利用者が少ないブラウザなんて切り捨てて良いんじゃないですかねー

>>966も無駄だって言ってますしー
> flexboxが使えないブラウザがあるから、代わりにこうすると良いかもとか考えだすとキリがないし、
> 結局いつまで経っても新しい物を使えないか、重厚なフレームワークやライブラリを噛ますようになるだろ
> 無駄なのよ
0974Name_Not_Found
垢版 |
2018/05/04(金) 12:38:03.69ID:???
> 利用者が少ないブラウザ
PCを使えない池沼
こんなの切り捨てで十分、増してWebブラウザなんて無料なんだしw
0975Name_Not_Found
垢版 |
2018/05/04(金) 19:53:40.79ID:???
答えになってないな
PCが使えないではなくて自分含め両方使い分ける人がいる
0976Name_Not_Found
垢版 |
2018/05/04(金) 20:35:57.40ID:???
ドロ用が利用者が少ないとはどんな感覚してんだ
モバイル系切るなんて有り得んわ
持ってるサイトの1つは7〜8割それらからのアクセス

しかも今回の件は切り捨てる理由がない
書き方が違うだけで、速度や保守面など大きなデメリットはないのだからな
0977Name_Not_Found
垢版 |
2018/05/04(金) 21:01:57.70ID:???
え?Android用の使われてないブラウザでしょ?
Opera miniなんて。切り捨てましょうそんなゴミ
0978Name_Not_Found
垢版 |
2018/05/04(金) 21:52:18.46ID:???
例えばだろ
でもって最初の質問に全く答えてない
0979Name_Not_Found
垢版 |
2018/05/04(金) 21:53:01.76ID:???
Android用の使われてるブラウザならどうなんだって話
0980Name_Not_Found
垢版 |
2018/05/04(金) 22:05:23.82ID:???
古いドロブラウザ使ってる環境こそ
JSやスタイルなんてほとんど適応しない質素なテキストページを案内すべきだと思うけどな
0981Name_Not_Found
垢版 |
2018/05/04(金) 22:35:31.34ID:???
話の飛躍は逃げの一手なのかな
0982Name_Not_Found
垢版 |
2018/05/04(金) 22:59:59.89ID:???
「話の飛躍は逃げの一手なのかな」
これこそが他者との相互理解を放棄した無価値なレス
0983Name_Not_Found
垢版 |
2018/05/04(金) 23:41:10.01ID:???
IE6がPC用の使われてるブラウザならどうなんだって話
0984Name_Not_Found
垢版 |
2018/05/05(土) 01:31:04.92ID:???
>>982
「話の飛躍」も相互理解を放棄している気がせんでもない
お互い様
0986Name_Not_Found
垢版 |
2018/05/05(土) 12:28:05.68ID:???
正論じゃないだろ。
Opera Miniはアンドロイド用の使われてないブラウザだ
使われてないブラウザは切り捨てるべきだよ
そうすることでブラウザの開発のやる気を無くさせる
開発が停止する。使ってる人もいなくなる。
0987Name_Not_Found
垢版 |
2018/05/05(土) 12:29:48.91ID:???
>>969の件ですが
chromeのデベロッパーツールを見ながら操作していて気づいたのですが
やはりshowはHTMLのstyle属性に'display:blockを設定しているようです
style属性でblockを上書きしてるのに何故ちゃんとflexboxになっているのか・・?
謎ですね?
レス数が950を超えています。1000を超えると書き込みができなくなります。

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