2011-08-05 12 views
2

I have following examplejQueryのセレクタ理解不能な問題

それが何をすべき:

  • チェックが
  • そうであればドキュメントであり.box-wrapperあると.tabs li a
  • .selectedを見つける上のクリックイベントがありますクラスを空の文字列に設定する
  • find parent of this - リンクをクリックして追加します。.selected

最後に、目に見えるように失敗しています。 console.log($('this').parent('li')); = []

なぜですか?なにが問題ですか?どんな提案も高く評価されました。

答えて

6

thisはあなたが必要とするので、DOMオブジェクトではなく、セレクタ文字列です:

$(this).parent('li').addClass('selected'); 
console.log($(this).parent('li')); 

の代わり:

$('this').parent('li').addClass('selected'); 
console.log($('this').parent('li')); 

$('this')はjQueryのは、一致するすべての要素をラップするオブジェクトを構築しますあなたのセレクター。 'this'は有効なセレクタではないため、 'selector unintelligible'エラーが表示されますが、$(this)はjQueryでラップされたクリックされたアンカーを参照します。それが、このクリック機能が動作するはずとしなければならないものをボックスラッパー

+0

はあー..私はそれを知っていました。ありがとう! – Iladarsda

1

わからない:Pコーヒー>スリープ:

$(".tabs li a").click(function(){ 
    $(".tabs li").removeClass("selected"); 
    $(this).parent().addClass("selected"); 
} 
+0

このコードは大きなものです。混乱させて申し訳ありません。 – Iladarsda