generated at
jQuery

cheat sheet



それjQuery使わなくても標準のhtml/css/jsでできるよ、ってやつ
ちょっとした開発に、library開発に、わざわざjQueryに依存する必要がないかもよ
単純に、jQueryで書けるあれをhtml/cssでどう書くんだ?の参考にもなる
いや、そうでもないな




$(function(){...})
初期読み込み時に、HTMLが全て読み込まれた後にこのブロックを実行する
DOMを操作する処理などは、HTMLが存在してる前提で動かさないとエラーになりうるため。
あえて書かない状況ってあるの #??
DOM操作なしで、最初に実行したい系の処理か
具体例は思いつかないけど
以下と同じ




listに対する処理をどう書くか
idは使えないのでclassで見ることになる
以下の2パターンが考えられる
loopしてその回数分の定義をする
js
const $container = $('.container'); $container.each(function(index) { $container.eq(index).f(...); })
「近い親」みたいにして定義する
js
... $(this).closet('.hoge-container').f(...); ...
twigとかなら
id="hoge-{{user.id}}" みたいにしてもいい
$("#hoge-{{user.id}}").click(function ..)


clickしたblockの親を取得する
html
li div.parent span.price button.submit ←click
こういうliが複数個あるときに、
button.submitをクリックしたときにそのブロックのspan.priceの値がほしい
parentで走査するのキモいなー
今はspanとbuttonが兄弟だからいいけど、入れ子深くなったら動かなくなるからな



text/val/html
text()
引数をそのまま文字列として表示
<b>a</b> という引数なら、 <b>a</b> という文字列を表示
val()
value属性を設定できるものにしか使えない
inputタグとか
.value() というmethodはない
html()
引数はdomとして表示
<b>a</b> という引数なら、太い a を表示
innerText()
innerHtml()
value
textContent
この辺の違い
a
jQueryJavaScript
.html("○○").innerHTML = "○○"
.text("○○").textContent = "○○"
.val("○○").value = "○○"
.html().innerHTML
.text().textContent
.val().value


findの返り値
配列になったり、値だったりすのか?



data() の挙動が謎なので代わりに attr() を使う

mapとかしたときのelemとthisの違い
elem
this
$(this)
$(elem)
ts
$.find('.hoge_list').map(function(elem){ elem.value ? this.value ? })
$() は関数
どういう関数?
$(document)

$ の命名規則
jQuery Objectを格納している変数にはprefixに$をつける?
そうならばmapのときもか
.map(function($elem, index) {...})
みたいに書くの?
これちがうなmrsekut
書くとすれば .map(function(e,i) { $elem = $(e)}) かな


chainできるやつとそうでないやつの差がわからん


遅延実行
delay()
.delay( duration [, queueName] )
delayはアニメーションに対してしか動かないらしい(要出典)
アニメーション系とそうでない系って明確な区別があるのか #??
domいじるか、css触るだけか、の差とか?
queue()
.queue( [queueName] )
なぜこれは動かない?
js
$('#hoge').html('hoge').delay(3000).hide();
delayはアニメーションに対してしか動かないらしい(要出典)
#hoge の中に 'hoge' を3s間だけ表示したい
これでうごいた
js
$('#hoge').html('hoge').delay(3000).queue(function() { $(this).html('') })
これも動く
js
$(`#hogehoge`) .text('hoge') .stop(false, false) .fadeIn() .delay(1500) .fadeOut();


Jestでtestを書く