X



+ jQuery 質問用スレッド vol.7 + [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
0001Name_Not_Found
垢版 |
2016/06/24(金) 15:41:34.46ID:???
JavaScriptで一番有名なDOM用関数型風ライブラリであるjQueryのスレです。
jQueryを使うとJavaScript単体では面倒な処理でもほんの数行で実現可能になります。

一部でもうjQueryは要らない等と言ってますが、あれはjQueryよりも導入が大変な
フレームワークを導入したらいらなくなるって話であって、従来通りHTMLにちょっと
動きをつけたい程度ならjQueryが最適です。

jQuery以外のライブラリの質問はライブラリ総合質問所で質問して下さい。
ライブラリ以外の質問はJavaScriptスレで質問して下さい。

■過去スレ (※vol3はありません。大人の事情でライブラリ総合質問所を乗っ取りました。)
+ JavaScript & jQuery 質問用スレッド vol.6 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/hp/1465566635/
+ JavaScript & jQuery 質問用スレッド vol.5 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/hp/1452081417/
jQuery ライブラリ 総合質問所 vol.4
http://peace.2ch.net/test/read.cgi/hp/1400313626/

■関連スレ
+ JavaScript の質問用スレッド vol.120 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1463914293/
+ JavaScript の質問用スレッド vol.130 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/hp/1463395557/
JavaScript ライブラリ総合質問所 vol.5 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/hp/1465399470/
0002Name_Not_Found
垢版 |
2016/06/24(金) 15:42:06.83ID:???
■参考リンク
・jQueryトップページ
http://jquery.com/

・ダウンロード、CDN
http://jquery.com/download/

・ブラウザサポート
http://jquery.com/browser-support/

・jQuery UI
http://jqueryui.com/

・jQuery UI ダウンロ−ド
http://jqueryui.com/download/

・リファレンス等
http://js.studio-kingdom.com/jquery/
http://alphasis.info/jquery/ (http://alphasis.info/jquery-api/)
http://www.jquerystudy.info/

■諸注意
過去スレはjQuery信者がjQuery布教の為にライブラリ総合質問所を乗っ取るためにたてたスレです。
その為、荒らしが常駐していますが、基本的に煽りはスルーしましょう。
0003Name_Not_Found
垢版 |
2016/07/07(木) 03:53:16.90ID:ThEb4ViG
最近javaScriptを独学で学んでいる者です

複数のul要素(同クラス名)の、子要素liの2番目に .before() でli要素を追加したいのですが、

var li = $('<li>').text('text');
$(ul.test > li:eq(1)).before(li);

では:eq(1)のせいか最初のulの子要素にしか反映されませんでした。
このような場合はどのようにすれば全ての同class名のulに反映されるのでしょうか?
0004Name_Not_Found
垢版 |
2016/07/08(金) 01:06:15.26ID:???
jQueryは、最初の1つしか取り出せない。
複数は取り出せないから、

ul.test1
ul.test2

など、異なるクラスを、割り当てればいい
0005Name_Not_Found
垢版 |
2016/07/08(金) 02:07:35.37ID:???
>>3
これでできるよ。

var li = $('<li>').text('text');
$('ul.test > li:nth-of-type(2)').before(li);

あとウソを付くやつがいるから気をつけてなw
jQueryは複数の要素に適用することができる。
メソッドの効果(今回で言えばbefore)は複数の要素に適用される。

値を返すメソッドに限り最初の要素の値のみを返す。
0006Name_Not_Found
垢版 |
2016/07/09(土) 01:22:13.29ID:???
$(ul.test > li:eq(1)).before(li);
$('ul.test > li:nth-of-type(2)').before(li);

同じ構文なのに、上は1つで、下は複数になるのか? なぜ?
0007Name_Not_Found
垢版 |
2016/07/09(土) 02:30:31.18ID:???
>>6
同じじゃないじゃんw

eqとnth-of-typeは意味が違うってだけ
0008Name_Not_Found
垢版 |
2016/07/12(火) 20:39:32.36ID:???
.fooが後述するh2要素をjQuery()で取得するのはどのように書けばいいでしょうか

<h2>hoge</h2>
<p class="foo">foo</p>
<h2>hoge</h2>
<p class="foo">foo</p>
<h2>hoge</h2>
<p class="piyo">piyo</p>
0009Name_Not_Found
垢版 |
2016/07/12(火) 23:23:19.74ID:???
>>8
これでいい?

$(".foo").prev('h2').css('color', 'red');

以下の場合上2つのh2が赤になる。

<h2>hoge</h2>
<p class="foo">foo</p>

<h2>hoge</h2>
<p class="foo">foo</p>

<h2>hoge</h2>
<p class="piyo">piyo</p>

<h3>hage</h3>
<p class="foo">hage-foo</p>

<h2>hoge</h2>
<h3>hage</h3>
<p class="foo">hoge-hage-foo</p>
0010Name_Not_Found
垢版 |
2016/07/13(水) 02:17:45.15ID:???
>>9
一つのセレクタで割り出すことは不可能ですか?
0012Name_Not_Found
垢版 |
2016/07/13(水) 13:47:38.14ID:???
セレクタにおける :nth-of-type(), :nth-child(), :eq() の違いを教えてください
0014Name_Not_Found
垢版 |
2016/07/14(木) 00:38:42.40ID:???
>>13
検証してもわからないから質問しているのですが
:eq()に触れてないのはなぜですか?
0015Name_Not_Found
垢版 |
2016/07/14(木) 01:07:31.32ID:???
>>14
:eqはCSSセレクタじゃないからなだけだけど?
まずnth-of-typeとnth-childの違いを言ってみ
読むべきページは出したよね?
0017Name_Not_Found
垢版 |
2016/07/14(木) 02:03:35.50ID:???
>>16
英語は読めるかい?

Because :eq() is a jQuery extension and not part of the CSS specification,
0018Name_Not_Found
垢版 |
2016/07/14(木) 08:26:10.58ID:???
>>17
jQuery拡張でも使えれば問題にしてないんですが
0019Name_Not_Found
垢版 |
2016/07/14(木) 22:26:19.22ID:???
>>18

>>13で:eq()に触れてないのはCSSセレクタじゃないから
だって話なんですが?
0020Name_Not_Found
垢版 |
2016/07/15(金) 07:49:44.51ID:???
>>19
CSSセレクタでないと都合が悪いのですか?
0021Name_Not_Found
垢版 |
2016/07/15(金) 08:46:37.92ID:???
>>12
- :nth-of-type() … 同じ要素タイプのグループ内におけるn番目の要素(インデックスは1から始まる)
- :nth-child() … 全要素におけるn番目の要素(インデックスは1から始まる)
- :eq() … 全要素におけるn番目の要素(インデックスは0から始まる)
0022Name_Not_Found
垢版 |
2016/07/15(金) 09:00:03.49ID:???
>>20
CSSセレクタじゃないとMDNに説明があるわけ無いだろw
0023Name_Not_Found
垢版 |
2016/07/15(金) 13:48:35.74ID:???
>>21
ありがとうございました

>>22
MDNに載っている内容で質問しているわけではありません
質問文をよく読まれてはいかがでしょうか
0024Name_Not_Found
垢版 |
2016/07/15(金) 23:20:27.18ID:???
>>23
だからMDNに説明書いてあるんだから
読めって話だ。
0025Name_Not_Found
垢版 |
2016/07/16(土) 06:50:11.08ID:???
まとめ「俺はMDNに書いてある事しか回答できません。:eqなんて知りません。」
0026Name_Not_Found
垢版 |
2016/07/16(土) 14:23:18.58ID:???
MDNの回答すら見なかったくせにw
0027Name_Not_Found
垢版 |
2016/07/16(土) 14:49:20.44ID:???
どえでもいいけど、>>14からの流れはMDNではぐらかしているようにしか見えないんだよな
0028Name_Not_Found
垢版 |
2016/07/16(土) 15:01:47.93ID:???
jQueryにelement.classList相当のAPIはありますか
classトークンを配列で得るAPIを求めています
0029Name_Not_Found
垢版 |
2016/07/16(土) 15:20:02.75ID:???
>>28
普通にclassNameをスペースで区切ればいいだけだけど?

そもそもclassListっていうのはclassNameに書かれた
スペースで区切られた複数のクラスのうち特定のものだけ抽出したり
変更して再設定するのが面倒だから追加された機能なんだけど。

おそらくクラスの使い方を間違ってると思うよ。
それhasClass()とかでもっと効率的に書ける問題でしょ?
0030Name_Not_Found
垢版 |
2016/07/16(土) 18:30:08.59ID:???
>>29
hasClass, removeClass, toggleClassは全て知っています
そんなに多くはないのですが、classトークンを配列で欲しい状況があります
0031Name_Not_Found
垢版 |
2016/07/16(土) 18:33:03.98ID:???
element.className.split(' ')しかないのなら残念です
classListの代替機能がjQueryにあることを期待していたのですが
0032Name_Not_Found
垢版 |
2016/07/16(土) 19:19:59.07ID:???
classListはIE9では使えないからな
俺もjQueryにあるなら使いたいわ
0033Name_Not_Found
垢版 |
2016/07/16(土) 19:33:15.62ID:???
俺がライブラリの開発者なら、
element.className.split(' ') で済むものを
$(element).classNames() なんてメソッド作ろうと思わないな。

それはそれとして、どういうときに使いたくなるの?
0034Name_Not_Found
垢版 |
2016/07/16(土) 20:19:12.45ID:???
まずはあるかないかを答えてやればいいのに目的を聞いてくるあたり、jQueryに不利な情報は出したくない感が見えるな
少なくとも俺の知る限りではないんんだが
0035Name_Not_Found
垢版 |
2016/07/16(土) 21:00:14.56ID:???
そうやって使う目的をいわないでjQuery批判に
持っていこうとしている所がわざとらしいよなw
最初からそれが狙いみたいな。
それがバレバレだから使う目的を聞かれてるんだよ。
0036Name_Not_Found
垢版 |
2016/07/16(土) 22:01:04.30ID:???
具体的にはclassトークン文字列を直接操作する場合に必要になります
例えば、下記では 1,2,3 の数値を参照することを求めます。

<p class="hoge-1">hoge</p>
<p class="hoge-2">hoge</p>
<p class="hoge-3">hoge</p>

「data-*属性で数値を分離すればいい」とする対案もあるでしょうが、

<p class="hoge" data-hoge="1">hoge</p>
<p class="hoge" data-hoge="2">hoge</p>
<p class="hoge" data-hoge="3">hoge</p>

既存コードを改修する場合に改修個所が多くてHTMLを書き換えるのが現実的ではないケースがあります

「何が最善か」は時と場合によります
「全てにおいて〜が最善」という事がなければ「は〜という理由で絶対に使わない」という事もないと私は考えています
バッドノウハウと他人に評価されようが、使えるカードは出来るだけ取っておくのが私の流儀です
その為には使えるカード(jQueryにclassListがあるのか)を予め知っておく必要があります
0037Name_Not_Found
垢版 |
2016/07/16(土) 22:05:38.54ID:???
「これこれこういう理由でclassListは使わない」なアドバイスは有り難く頂戴しますが、それはそれとしてclassListの有無は答えて頂きたいのが正直な気持ちです
今、必要なのは「事実」であって「意見」ではありません
「使う/使わない」は各自が自由に決めればいい事であって他人に押し付けるものではない、と私は思います
0038Name_Not_Found
垢版 |
2016/07/16(土) 22:14:12.11ID:???
> それはそれとしてclassListの有無は答えて頂きたいのが正直な気持ちです
うん。だからelement.className.split(' ')で取れるよって
0039Name_Not_Found
垢版 |
2016/07/16(土) 22:16:48.75ID:???
なんでJavaScriptでも手間変わらずに同じことをやれるのに
jQueryにそれを求めるのだろうか?

jQuery.eachとかは古いブラウザでは搭載してなかったから
という理由で入ったんだぞ。手間変わらずに同じことができるなら
jQueryを使わなくていいんだよ。

jQueryはDOM操作を関数型風に使うためのライブラリなんだから。
0040Name_Not_Found
垢版 |
2016/07/16(土) 22:47:38.93ID:???
>>36
意味がわからん。っていうか答えになってない。

その話だけなら、$('p').attr('class') とかでいいだろ。

classList相当のものを探していたんじゃないのか?
classListを使っても hoge-1 とかしか取得できない。
1, 2, 3 という数値を取ることはできない。
0041Name_Not_Found
垢版 |
2016/07/16(土) 22:55:04.10ID:???
もしかしてattrでclassを取得できるっていうのが分かってないとかだろうかね?

例えばこんなことだってできる。

$('p[class^="hoge-"]').attr('class', function() {
 return this.className.replace('hoge', 'hage');
});

この答えで100%問題ないだろ?w


って言ったら駄目だっていうんだろうな。
だからなんに使うのかを聞いてるのに。
0042Name_Not_Found
垢版 |
2016/07/16(土) 23:00:26.59ID:???
>>36
> 例えば、下記では 1,2,3 の数値を参照することを求めます。
>
> <p class="hoge-1">hoge</p>
> <p class="hoge-2">hoge</p>
> <p class="hoge-3">hoge</p>

classって複数指定できるの知ってる?
<p class="hoge-1 hoge-2">hoge</p>
って書いてあったらどするの?

1,2,3 の数値を参照ってどういうこと?
0043Name_Not_Found
垢版 |
2016/07/16(土) 23:06:30.58ID:???
>>36
> その為には使えるカード(jQueryにclassListがあるのか)を予め知っておく必要があります
あ、つまり、今すぐにどういうことに使おうか思いつかないが
機能を知りたいだけねw

ならあるっていうのが答え。
できた時代から考えてjQueryを参考にしてclassListを作ったようなものだから。

https://api.jquery.com/category/manipulation/class-attribute/
classList.add → .addClass()
classList.remove → .removeClass()
classList.toggle → .toggleClass()
classList.contains → .hasClass()

更に値としてコールバック関数が使えるなどjQueryオブジェクト(DOM要素コレクション)を
操作しやすく拡張されている。
004428
垢版 |
2016/07/18(月) 12:42:52.75ID:nUYW4FuR
「jQueryにはない」という意見しか出ないですね
残念ですが、自前で拡張する事にします
回答を下さった方、ありがとうございました
0045Name_Not_Found
垢版 |
2016/07/18(月) 13:09:50.70ID:???
必死だなw あるって話をしてるのに。
0046Name_Not_Found
垢版 |
2016/07/18(月) 14:19:17.12ID:???
ごめん

教えてほしいことがあります。

http://www.dotup.org/uploda/www.dotup.org948347.png.html

↑サイトが開かれるのと同時に開く確認ダイアログの中に、アフィリエイト広告を張り付けたいんだけど、どうやればいい?
それとも、仕組み上無理なの?


コード自体は、web上で公開されてるヤツで、いろいろいじってみてるんだけど、初心者にはよくわからん……

↓どこをどういじればいいの?

http://www.dotup.org/uploda/www.dotup.org948354.txt.html
0048Name_Not_Found
垢版 |
2016/07/18(月) 14:51:11.20ID:???
すみません、スレ違いでしたか……

丁寧に誘導までしていただきありがとうございます
0049Name_Not_Found
垢版 |
2016/07/26(火) 18:42:47.32ID:???
あるinputが、TYPEが radio か text かを判定したいんだけど
なにで区別すればいいですか?
0051Name_Not_Found
垢版 |
2016/07/26(火) 21:08:32.17ID:???
>>49
どこで区別するのかによる。

$('input:radio') 要素を選択するならこれ

イベントハンドラで使いたいならば
$(document).on(イベント, 'input:radio', function() {・・・})
というのもあり。

俺はあまりやることはないが、どうしてもイベントハンドラの中で区別したいなら
$( "input" ).on('change', function() {
 if ($(this).is( ":radio" ) ) {
  ・・・
 }
});
とかいうのもありだろうし、isの代わりにthis.type === 'radio' でもいいかもしれない。
0052Name_Not_Found
垢版 |
2016/07/27(水) 15:11:49.28ID:???
>>50-51
ありがとう。 $unko.attr('type') == 'radio' でできた
0053Name_Not_Found
垢版 |
2016/07/27(水) 19:10:13.40ID:???
2chでたまにある下品な変数名って何なの?
自分が下劣な人間であることをアピールしてるの?
0054Name_Not_Found
垢版 |
2016/07/27(水) 19:31:28.35ID:???
痛車に乗っている奴と同じで周囲と自分の感覚のズレに気が付いてないだけだろ
本人は面白いネタを披露しているつもりなのさ
小学生があの単語を連呼して喜んでいるのと同じ
0055Name_Not_Found
垢版 |
2016/07/27(水) 20:08:08.93ID:???
unko はラテン語で「ひとつの」を意味する単語だし
メタ構文変数としては適切だと思うよ
0057Name_Not_Found
垢版 |
2016/07/27(水) 20:51:30.26ID:???
というか、日本語で読めるものを外国語で読む論理なら「nihon は英語では読めないからメタ構文変数」と主張できることになるんだが、明らかにおかしいだろ
0058Name_Not_Found
垢版 |
2016/08/08(月) 04:34:25.33ID:???
>>5
ものすごく遅くなりましたがみなさん回答ありがとうございました。
助かりました。
0059Name_Not_Found
垢版 |
2016/08/14(日) 20:45:14.39ID:???
<form action="hoge.php">
<input type="submit" id="send" value="送信">
</form>

$('#send').click(function(){
if (条件) {
(処理)
} else {
return false;
}
});

と、送信でも条件によってフックしてhoge.phpへの移行を
阻止したいのですがこれってどのブラウザでもその通りになりますか?
phpが先に実行される可能性はありますか?
0060Name_Not_Found
垢版 |
2016/08/14(日) 22:24:15.04ID:???
>>59
DOMを正しく実装しているブラウザであれば期待通りに動きます。
それはそれとして、対象ブラウザ全てで検証するのは基本だと思うのですが。
0061Name_Not_Found
垢版 |
2016/08/14(日) 22:41:36.14ID:???
>>60
ありがとう。

この方が早いかと一瞬思ったのですが、後々考えたら
普通のボタンにonclickでfunction呼び出した方が見通しがいいかもしれませんね。
私の場合他人が見ることもHTMLだけ見ることもないので
さほどの問題でもないのですが(たぶん)。
0062Name_Not_Found
垢版 |
2016/08/15(月) 00:09:53.91ID:???
>>61
> 普通のボタンにonclickでfunction呼び出した方が見通しがいいかもしれませんね。
今はonclick属性は一般的に使わない。

あとreturn falseではなく、event.preventDefault()を使うのが標準的なやり方だ。
eventはclickのイベントハンドラの第一引数な。

それからその場合はformのsubmitイベントを捉えたほうが良い。
そうすればthisがformになるからformの中を参照するのが少し楽になる。

ついでだが#sendにイベントハンドラをつけるのではなくdocumentにつけて
#sendで振り分けたほうが良い。僅かなタイミングだが
イベントハンドラが有効にならない期間がある。

要するにこうした方がいいという話だ。

<script>
$(document).on('submit', '#sendform', function(event) {
 if (!条件) {
  event.preventDefault();
  return;
 }
 処理
});
</script>

<form id="sendform" action="hoge.php">
<input type="submit" value="送信">
</form>
0063Name_Not_Found
垢版 |
2016/08/15(月) 22:41:59.07ID:???
>>62
>event.preventDefault()を使うのが標準的なやり方

これだと何がいいのでしょうか?
イベントの伝播で安全ということでしょうか?
0064Name_Not_Found
垢版 |
2016/08/21(日) 12:29:01.33ID:???
>>63
バブリングを止めない、という理解でいいんじゃないか
0065Name_Not_Found
垢版 |
2016/10/23(日) 12:58:24.02ID:k3QeH1kd
jqueryプラグインの「mix it up」を使っていて、
さらにプラグイン「jquery.cookie.js」を使ってそれをクッキーに保存させたいと思っています。

`
sample.html
<div class="style1">
 <div>
  <div class="filter style2" data-filter=".a">青</div>
  <div class="filter style2" data-filter=".b">赤</div>
  <div class="filter style2" data-filter=".c">黄</div>
 </div>
</div>
<dl>
 <dd class="sort" data-sort="default">新着順</dd>
 <dd class="sort" data-sort="myorder:desc">価格の高い順</dd>
 <dd class="sort" data-sort="myorder:asc">価格の低い順</dd>
 <dd class="sort" data-sort="random">ランダム</dd>
</dl>
<div class="style3">
 <div class="mix a">青</div>
 <div class="mix b">赤</div>
 <div class="mix c">黄</div>
</div>
`
0066Name_Not_Found
垢版 |
2016/10/23(日) 12:58:58.10ID:k3QeH1kd
`
sample.js
$('.style3').mixItUp({
controls: {
toggleFilterButtons: true,
toggleLogic: 'and',
},
animation: {
duration: 0,
},
});


$('.style2').on('click', function(){
$(this).toggleClass('style2b');
});
`
.style2のタグをクリックすると.style3の記事が絞り込み検索される仕組みです。
.style2をクリックすると同時に.style2bが付与され色が反転し、どのタグが選択されているか目視できるようにしています。
.mixにはdisplay:none;がかかっています。
このクッキーを保存して、ページが更新された場合に絞り込み検索および付与された.style2bが残っている状態にしたいと考えております。
独学で作成していて壁にぶつかっております。どうかご教授お願い申し上げます。
0067Name_Not_Found
垢版 |
2016/10/23(日) 23:32:21.63ID:???
クッキーに、ページの状態を保存したいの?

絞り込み検索のキーワード・カテゴリ、
style2bが付与されたことを、保存すれば?
0068Name_Not_Found
垢版 |
2016/10/24(月) 09:18:37.53ID:MXxfOYJU
>>67
そうです。
具体的なコードの書き方を教えていただきたいです。
0069Name_Not_Found
垢版 |
2016/10/25(火) 01:09:11.78ID:???
クッキーの仕様・容量を、調べれば?

データ構造は、[キー : 値] の辞書かな?
0070Name_Not_Found
垢版 |
2016/10/25(火) 12:00:22.97ID:AcPzGlnV
>>69
いろいろと調べてもわからなくてここにたどり着きました。
0073Name_Not_Found
垢版 |
2016/10/26(水) 02:26:05.03ID:???
クッキーはjQueryで扱うべきものじゃない。
なぜならクッキーはDOMとは無関係だから。

それはjQueryが流行って質の悪いjQueryプラグインが大量に
生産されたときの負の遺産。いまどき使うべきじゃない。

「javascript cookie library」でぐぐったらコレが出てきた。
https://github.com/js-cookie/js-cookie

starも多いしこれでいいんじゃね?
0074Name_Not_Found
垢版 |
2016/10/26(水) 02:28:09.49ID:???
クッキーを扱うjQueryプラグインはjQueryプラグインではなくて
jQueryの名前空間に寄生しているだけ。
0075Name_Not_Found
垢版 |
2016/10/27(木) 01:20:47.53ID:???
そもそも、今でもクッキーを使うのかな?

今は、WebStorage じゃないの?
0076Name_Not_Found
垢版 |
2016/10/27(木) 12:41:11.64ID:???
>>75
使うに決まってんだろ脳みそ沸いてんのかクソボケ野郎が
0077Name_Not_Found
垢版 |
2016/10/28(金) 14:26:24.09ID:???
<div>
 <div>1</div>
 <div>2</div>
 <div>3</div>
 <div>4</div>
 <div>5</div>
</div>
例えばdivのclickイベントで、3がクリックされたときに
その次の4のdivを取得する方法を教えてください。
0079Name_Not_Found
垢版 |
2016/10/28(金) 14:54:33.50ID:???
>>78
すみません、JQだとどうなりますか?
0081Name_Not_Found
垢版 |
2016/10/28(金) 19:21:48.82ID:???
>>79
jQueryでも同じコードを書けるんだが
jQuery#nextとnextElementSiblingは同じ
thisとevent.targetは等価ではない
eventは両方とも同じ
0083Name_Not_Found
垢版 |
2016/10/28(金) 21:46:53.73ID:???
>>81
> jQuery#nextとnextElementSiblingは同じ
同じではないよ。

jQueryの基本的な考え方として0個以上の要素郡に対して処理を実行するという点がある。
これの何が便利かというと動的なページであれば何かの要素が存在しない場合がある。
例えばデータが1ページに収まれば「次へ」ボタンを表示しないとか。

document.getElementById('next')なんて書いているとボタンがなかった
ときにnullになって、それを防ぐためにif文が必要になったりするが、
jQueryの場合は、何も書かずとも#nextが見つからなくても問題ない動きをする。

>>77の場合は5がクリックされた時が問題。nextElementSiblingを使うと要素が
見つからない時nullを返すので、そうならないように条件分岐が必要になる。
大したことじゃないと思うかもしれないが、ifの条件を満たす時と満たさない時で
テストが必要になる。言い換えるとコードが複雑になってる。

> eventは両方とも同じ
違う。jQueryのeventは標準仕様に準拠しつつブラウザ間の互換性を高くしている。
jQueryのeventは改良されたevent
0084Name_Not_Found
垢版 |
2016/10/28(金) 22:35:39.02ID:???
function func1() {
 return { 'year': 2016, 'month': 10 };
}
こういう関数を使って値を取り出す場合には、一旦objと言う変数に入れて、

var obj = func1();
var year = obj['year'];
var month = obj['month'];

とするのが普通だと思うのですが、もしobjを使わずに

var year = func1()['year'];
var month = func1()['month'];

とするとfunc1()が二回実行されて無駄ですよね?
質問は、一時変数objを使わずに、かつfunc1()も一回だけ実行して
値をyearとmonthに取り出す方法はありますか?
目的は、単なる興味です。
0085Name_Not_Found
垢版 |
2016/10/28(金) 23:07:50.54ID:???
jQueryの話と関係ないな
あらしかな。
0086Name_Not_Found
垢版 |
2016/10/29(土) 05:09:40.68ID:???
YouTubeのサイトのように、画面に表示されている所の、画像だけを表示して、
下へスクロールすると、新たに表示された所の画像を、その時に読み込んで表示するのは、
どのように、やっているのでしょうか?

つまり、非同期・遅延読み込み
0087Name_Not_Found
垢版 |
2016/10/29(土) 08:57:58.22ID:???
>>84
コードの書き方がいろいろおかしい
同じオブジェクトを参照するなら function func1() {
 return { 'year': 2016, 'month': 10 };
}
が不要
year, month も一時変数なので不要

var obj = { 'year': 2016, 'month': 10 };

これだけで良い
これ以上はJSスレで
0088Name_Not_Found
垢版 |
2016/11/03(木) 08:04:31.06ID:FerPc7S6
質問お願いします。

スライドショーの上に常に違う画像を重ねて表示させたく
https://allabout.co.jp/gm/gc/417216/2/
を参考にしてスライドショーはできたのですが
上に画像を重ねる方法がわかりませんでした。
知恵袋で似てる質問はあったのでチャレンジしてみたのですが
上記のサイトとは違うコードの組み方のようで結局出来ずに終わりました。

ほとんど調べながらコピペしてる状態の初心者なので、初歩的な質問かもしれませんが
もしご存じの方がいらっしゃいましたら教えていただきたいです。
また、解説してるサイト等ありましたら貼っていただけると助かります。

よろしくお願いします。
0090Name_Not_Found
垢版 |
2016/11/03(木) 08:31:12.68ID:???
>>89
ありがとうございます。
そちらで質問させていただきます。
0091Name_Not_Found
垢版 |
2016/11/19(土) 13:37:08.41ID:???
バージョン1系から3系に入れ替えたら、IE11でローカルファイルを開くとAjaxが動かなくなったけど、
どうすれば良いの?サーバに入れると正常に動作するのに。
0093Name_Not_Found
垢版 |
2016/11/26(土) 23:19:51.36ID:???
画像の遅延ロードってlazyloadでしか無理なの?
0094Name_Not_Found
垢版 |
2016/11/28(月) 13:30:55.11ID:???
>>93
同等の機能を自分で実装すればいけるよ
昔は自分でやってたもんだ
0095Name_Not_Found
垢版 |
2016/12/18(日) 12:27:31.41ID:???
現行スレはこちら。

■jQueryスレ
jQuery 質問スレッド vol.7
http://echo.2ch.net/test/read.cgi/hp/1478055094/

■ライブラリスレ
JavaScript ライブラリ総合質問所 vol.5
http://echo.2ch.net/test/read.cgi/hp/1465399470/

■JavaScriptスレ
JavaScript の質問用スレッド vol.131
http://echo.2ch.net/test/read.cgi/hp/1478053599/
JavaScript の質問用スレッド vol.122
http://echo.2ch.net/test/read.cgi/tech/1472426483/
JavaScript(ECMAScript)質問用スレッド vol.122
http://echo.2ch.net/test/read.cgi/tech/1472401404/
0096Name_Not_Found
垢版 |
2017/06/04(日) 20:49:35.14ID:???
jQuery初心者ですが、サイト内で複数のmp3を順に自動再生させたいのですが、
ぐぐって出てきたページに
↓このようなコードがあり、ページ中のボタンを押すと再生が始まる仕組みになっているのですが、
ボタンを押さなくてもページが表示された時点で自動再生されるようにするには一体どうすればいいのでしょうか?

〜冒頭省略〜
$( "#button_play_all" ).click( function () {
var mySources = $( "#media_player" ).children( "source" );
var myAudioPlayer = document.getElementById( "media_player" );
myAudioPlayer.addEventListener( "ended", function () {
〜以下省略〜〜
0097Name_Not_Found
垢版 |
2017/06/04(日) 20:51:23.04ID:???
>>96 続き・・
<!-- 再生開始ボタン -->
<input id="button_play_all" type="button" value="全ファイル連続で再生" />

<!-- mp3を用意する(HTML5タグ) -->
<audio hidden name="media" preload="auto" id="media_player">
<source src="mp3のファイルパス" type="audio/mp3">
<source src="mp3のファイルパス" type="audio/mp3">
</audio>

ぐぐって出てきたページ↓
https://lightz.info/index.php/view/226?continue=1#continue
0098Name_Not_Found
垢版 |
2017/06/04(日) 23:44:29.83ID:???
>>96
autoplay 属性というのがある
<audio autoplay …
ただし、ブラウザ設定でブロックされている場合はどうやっても無理だろう(ユーザに強制できない)
0099Name_Not_Found
垢版 |
2017/06/05(月) 00:04:54.08ID:???
>>98
ありがとうございます。
1ファイルなら簡単に再生できるのですが、複数のファイルを順に再生する方法がわかりません。
サンプルコードではそこが実現できているのですがページ内のボタンをクリックする必要があります。
$( "#button_play_all" ).click( function () {
↑この部分がボタンクリックで実行する制御をおこなっているようですが
ここを省略して以下のコードを実行させるように書く方法がわかりません。
0100Name_Not_Found
垢版 |
2017/06/05(月) 02:36:34.55ID:???
>>99
autoplay で再生が始まったときのイベントを捕まえて
そのサンプルコードと似たコードを走らす必要があるだろうね
0103Name_Not_Found
垢版 |
2018/02/18(日) 20:15:41.37ID:???
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
0104Name_Not_Found
垢版 |
2018/05/01(火) 22:12:18.40ID:l1wYHpV1
誰でもできる在宅ワーク儲かる方法
少しでも多くの方の役に立ちたいです
グーグルで検索するといいかも『金持ちになりたい 鎌野介メソッド』

5OKLJ
0105Name_Not_Found
垢版 |
2018/05/05(土) 17:42:19.13ID:???
let $div = $('<div>')..append('<span>')

としてからspanにclassを追加したい場合はどうやればいいですか?
0106Name_Not_Found
垢版 |
2019/02/23(土) 19:36:35.09ID:???
x = (x === 0) ? y : x++;

この書き方間違ってますか?
ifに書き換えたら普通に動くのですが、これはダメでした。
0108Name_Not_Found
垢版 |
2019/06/03(月) 16:33:20.18ID:???
izimodal使ってる人がいたら教えて欲しいんだけど閉じるボタンの色変えるのどこ弄ったら良いですか?
オプションのIconColor設定しても変わらんし、izi Modal.cssでicon関連の色変えてみても反映されないの…
0109Name_Not_Found
垢版 |
2019/06/05(水) 14:47:29.13ID:???
>>106
やりたいのはこんな感じ?

<!doctype html>
<html>
<head><meta charset=”utf−8”></head>
<body>
<script>
let x = 0;
const y = 5;
console.log(”x: ”+x);
console.log(”y: ”+y);
if (x === 0) {
x = y
} else {
x++;

console.log(”x: ”+x);
if (x === 0) {
x = y
} else {
x++;

console.log(”x: ”+x);
</script>
</body>
</html>
0110Name_Not_Found
垢版 |
2019/06/05(水) 14:49:43.58ID:???
こうかな

<!doctype html>
<html>
<head><meta charset=”utf−8”></head>
<body>
<script>
let x = 0;
const y = 5;
console.log(”x: ”+x);
console.log(”y: ”+y);
x = (x === 0) ? y : x+1;
console.log(”x: ”+x);
x = (x === 0) ? y : x+1;
console.log(”x: ”+x);
</script>
</body>
</html>
0111Name_Not_Found
垢版 |
2019/06/05(水) 14:53:34.57ID:???
【要点】

>>106
> x = (x === 0) ? y : x++;
>
> この書き方間違ってますか?

x = (x === 0) ? y : x+1;
0113Name_Not_Found
垢版 |
2019/06/05(水) 18:22:48.19ID:???
>>112
半角だと投稿できないからな
まともなテキストエディタなら「半角⇒全角」は5秒かからないな

>>111 は読めるよね
0114Name_Not_Found
垢版 |
2019/06/06(木) 08:27:37.48ID:???
>>113
まともなプログラマなら、jsfiddleやcodepen等の外部サイトを使う
0115Name_Not_Found
垢版 |
2019/06/06(木) 14:05:05.55ID:???
煽らないと死ぬ病気かあ
0117Name_Not_Found
垢版 |
2019/06/08(土) 12:57:38.01ID:???
先日、どっかの外部サイトがサービス提供終了になってなかったっけ
0118Name_Not_Found
垢版 |
2019/06/19(水) 19:47:26.91ID:???
下記のようなtableに対して
<table>
<tbody>
<tr>
<td><input type="checkbox"></td>
<td><input name="tes" value="1"></td>
</tr>
</tbody>
</table>
checkboxをクリックしたら兄弟のinputのvalueを取得したかったのですが下記のコードを試してもvalueは取れませんでした
$('input:checkbox').on('click',function(e)){
var tes = $(this).closest('tr').children('td:eq(1)').val();
});
どう書けば良いかお教え下さい
0119Name_Not_Found
垢版 |
2019/07/28(日) 06:54:08.31ID:G4QBZ3uk
Showroom を見るときに、多くのアバターが邪魔なので削除していますが、
要素を削除するのに、一々、その親要素を取得して、親から子要素削除するのは、面倒

var elem = document.getElementById('js-avatar');
elem.parentNode.removeChild(elem);
0122Name_Not_Found
垢版 |
2019/09/02(月) 21:37:41.12ID:???
window.openで新しくタブを開き、input要素に文字を入れたいのですがどうのように刷れば良いでしょうか?
仮にjquery.comの検索ボックスに入力するとして、

var foo = window.open("jquery.com");
foo.$(".ds-input").val(333);

としたら出来ました!!?!?!?
さっきまでは出来なかったんですが・・・すいません
ありがとうございました
0123Name_Not_Found
垢版 |
2019/09/02(月) 21:43:15.45ID:???
var foo = window.open("jquery.com");foo.$(".ds-input").val(333)
と一行で書くと駄目みたいです
jqeuryが読み込まれていないせいでしょうか
0124Name_Not_Found
垢版 |
2019/10/02(水) 14:18:17.64ID:???
jQ勉強中です。containsを覚えました。ですが、例えば
$('td:contains("abc")')
という指定をすると、td自体だけでなくその子孫要素のどれか1つにでもabcを含むとマッチしてしまいますが、そうじゃなく、
td要素自体が直接abcというテキストを持っている要素だけにマッチするようにするにはどうしたらいいでしょうか?
0125Name_Not_Found
垢版 |
2020/02/01(土) 11:30:43.67ID:???
<div class="result"></div>にajaxを使って
.done((data) =>{
  $('.result').html(data);
})
でtableを表示してるのですが、
そのtableをマウスクリックした明細行の情報を取得することは可能ですか?
0126Name_Not_Found
垢版 |
2020/02/29(土) 22:05:16.62ID:???
すみません、わかる方がいらっしゃれば教えていただけないでしょうか。

<table>

<tr class = '010'> <td>あ</td>い<td>う</td>え<td>お</td> </tr>
<tr class = '010'> <td>か</td>き<td>く</td>け<td>こ</td> </tr>
<tr class = '020'> <td>さ</td>し<td>す</td>せ<td>そ</td> </tr>
<tr class = '010'> <td>た</td>ち<td>つ</td>て<td>と</td> </tr>
<tr class = '010'> <td>な</td>に<td>ぬ</td>ね<td>の</td> </tr>
<tr class = '020'> <td>は</td>ひ<td>ふ</td>へ<td>ほ</td> </tr>
<tr class = '010'> <td>ま</td>み<td>む</td>め<td>も</td> </tr>
<tr class = '030'> <td>や</td>ゆ<td>よ</td>?<td>!</td> </tr>

</table>


【やりたいこと】
「き」のセルをクリックしたら同じclass='010'の中で直後にあたる
「た」行のみ背景色を変えたい。

【困っていること】
以下のようなコードを書いたのですが、当然のことながらclass='010'である
すべての行の色が変わってしまいます。($(this)は「き」の<td>です)

$(this).parent().siblings('.010').css("background-color", "#ffcccc");

これをclass='010'である行の内、「き」の<td>が含まれる列の直後の列に
限定することはできるのでしょうか。
0127Name_Not_Found
垢版 |
2020/07/24(金) 07:06:56.94ID:???
そもそも「き」はテキストノードでtd要素になってない。htmlから勉強しなおしてください。
0128Name_Not_Found
垢版 |
2020/07/24(金) 11:49:34.74ID:???
半年経ってやっと回答付いてるww
0129Name_Not_Found
垢版 |
2022/08/19(金) 00:59:08.21ID:cMF1ija4
すんませんjQueryの質問なんやけど
eachでliタグの子要素のimgタグを取得してalt属性を追加して値はliタグの子要素のemタグのテキストにしたいんだが

全部のliタグの子要素のemタグのテキストを追加してしまう
対応するliタグの子要素のemタグのテキストをそれぞれ追加したいんや!
おせーてくれ!!たのんます!!
0130Name_Not_Found
垢版 |
2022/08/19(金) 13:26:40.78ID:???
li タグの子の、img タグのalt 属性に、
同じliタグの子の、em タグのテキストを設定する

<li><img src="a.jpg"><em>あい</em></li>
<li><img src="b.jpg"><em>abc</em></li>

$( function ( ) {
$( 'li' ).each( function( ) {
const that = $( this );
that.children( 'img' ).attr( 'alt', that.children( 'em' ).text( ) );
} );
} );

結果
<img src="a.jpg" alt="あい">
<img src="b.jpg" alt="abc">
0131Name_Not_Found
垢版 |
2022/09/21(水) 13:20:03.39ID:???
生のDOMを取得するときには
$("#unko")[0]
ってやるけど、これって正式な手順なの? それとも有名な裏技扱い?
DOM取得メソッドって存在するっけ?
0132Name_Not_Found
垢版 |
2022/09/23(金) 05:29:27.82ID:???
>$("#unko")[0]

単に、これじゃダメなのか?
abc クラスが2つ以上あればダメだけど、1つならどう?

const abc = $( '.abc' );
0134132
垢版 |
2022/09/24(土) 00:37:46.06ID:???
>>132
修正

>const abc = $( '.abc' );
これはダメでした!

やっぱり以下のように、インデックスも必要でした
const abc = $( '.abc' );
abc[0]
0135Name_Not_Found
垢版 |
2022/10/26(水) 18:08:48.79ID:???
bxsliderとlightboxを組み合わせて使うと、
lightboxのグループ化がバグって同じ内容が2つずつ表示されてしまうのですが、
回避方法は無いでしょうか。。。
0136Name_Not_Found
垢版 |
2022/12/01(木) 22:49:59.10ID:???
jQueryをマスターしたいので、おすすめの解説書を教えて下さい。
■ このスレッドは過去ログ倉庫に格納されています

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