2016-05-26 8 views
-1

作業私のjQueryの最も近い機能ではありませんので、私はこの機能を持っている:はなぜ

var test = $('#currentCat').closest('div'); 
alert(test); 

そしてここでは、HTML

<div class="collapse" id="26"> 
    <a href="#" class="list-group-item" id="currentCat">Hoodies (6)</a> 
</div> 

しかし、代わりに私にHTMLDivElementを与えている私は、オブジェクトを取得し、それが働いていません

+2

コードのデバッグに 'alert'を使用しないでください。 –

答えて

3
var test = $('#currentCat').closest('div'); 

jQueryはDOM要素を返しません。 jQueryオブジェクトを返します。これは配列でもあり、DOM要素を含んでいます。

はこれを行います。

var $list = $('#currentCat').closest('div'); 
var element=$list[0]; // Get first item from the array 
console.log(element); 

Proのデバッグヒント:あなたはこのような疑問を持っている

次回は、あなたが見ている内容を調べます。
console.log(test)を実行していれば、配列(または配列のような)構造であることがわかりました。

+0

ありがとう、それはトリックでした!それは今働いている。 デバッグヒントありがとうございます。私は同じデータを返すと思って以来、私は常にデバッグのための警告を使用してきました。 – Dope

+1

@Dope: 'alert'はその引数を文字列に変換します。複雑なデータ構造ではうまく機能しません。 –

+1

@Dope 'console.log'は、' alert'がする非常に異なる情報を表示します... Felixが述べたように、それはデータを文字列に変換します。 –