QA@IT
«回答へ戻る

回答を投稿

each の中の this は each で反復されているDOM要素です。

$('#test ul').each(function(){})

なら each の this は ui 要素です。

$('#test ul li').each(function(){})

なら each の this は li 要素です。each はセレクタにマッチする要素の数だけ呼ばれますが、その各呼び出しで、それぞれ異なる li 要素になります(N回目の呼び出しでは N 番目の li 要素が this になるという意味)。

$(this)

で、DOM 要素を jq オブジェクトにしていますが、そうして得られた jq オブジェクトは単一の DOM 要素のみを含んでいます。

$(this).eq(0)

で、jq オブジェクトに含まれる最初の DOM 要素の jq オブジェクトが得られますが、元の jq オブジェクト $(this) には元々1つしか DOM 要素が含まれていないので意味がありません。


例えば、

$('#test ul li')

で得られる jq オブジェクトは複数の li 要素を含んでいるので、

$('#test ul li').eq(0)

とすれば

  • #test の
  • 子孫の ui 要素の
  • 子孫の li 要素の
  • 0 番目の

jq オブジェクトが得られます。

each の中の this は each で反復されているDOM要素です。

```js
$('#test ul').each(function(){})
```

なら each の this は ui 要素です。

```js
$('#test ul li').each(function(){})
```

なら each の this は li 要素です。each はセレクタにマッチする要素の数だけ呼ばれますが、その各呼び出しで、それぞれ異なる li 要素になります(N回目の呼び出しでは N 番目の li 要素が this になるという意味)。

```js
$(this)
```

で、DOM 要素を jq オブジェクトにしていますが、そうして得られた jq オブジェクトは単一の DOM 要素のみを含んでいます。

```js
$(this).eq(0)
```

で、jq オブジェクトに含まれる最初の DOM 要素の jq オブジェクトが得られますが、元の jq オブジェクト `$(this)` には元々1つしか DOM 要素が含まれていないので意味がありません。

---

例えば、

```js
$('#test ul li')
```

で得られる jq オブジェクトは複数の li 要素を含んでいるので、

```js
$('#test ul li').eq(0)
```

とすれば

 - #test の
 - 子孫の ui 要素の
 - 子孫の li 要素の
 - 0 番目の

jq オブジェクトが得られます。