2017-08-21 3 views
4

querySelectorAll()は('div.element:first')このタイプの引数を受け入れますか?

$li = $(this) 
$li.find('div.element:first') 

バニラ:私はjQueryの

VanillaJS

でjQueryのメソッドの下に変換する必要があり

var li = event.target; 
li.querySelectorAll('div.element:first'); 

しかしバニラスクリプトはjQueryのと同じ動作していません。誰かより良い解を提案してください。

+4

を行うことができ、 '$が何を表しているli'のでしょうか? – nadavvadan

+0

'$ li'は - >' $ li = $(this) ' – supun94

答えて

11

jQueryの:firstは、一致する要素の集合を最初の集合に減らします。

つまり、最初の要素はdiv.elementになります。平野JavaScriptで同じことを行うに

、すべてあなたがしなければならないAll一部なしコールquerySelectorquerySelectorとして

var first = li.querySelector('div.element'); 

はとにかく

これを指定したセレクタに一致する最初の要素を返しますですもちろん、liが単一の要素である場合、querySelectorはjQueryのfind()のようにコレクションでは機能しません。

liは、単一の要素でない場合は、反復処理する必要がありますが、あなたは最初の要素だけを探していることから、あなただけの

var first = li[0].querySelector('div.element'); 
+2

' li.querySelectoAll( 'div.element')[0] 'を表します。これはうまくいきました。 – Nicholas

+0

@Nicholas - nodeList.first'プロパティがあることに気づいていませんでしたか? – adeneo

+1

あなたは 'first'を' [0] 'に変更しました。これは少なくとも動作しても問題ありませんが、代わりに' querySelector'を呼び出すのと同じことです。 – adeneo

関連する問題