2011-08-05 49 views
2

I have following examplejQuery選擇難以理解的問題

它應該做的:

  • 檢查是否有.box-wrapper在doc
  • 若是,且有上.tabs li a
  • 找到.selected的單擊事件並將類設置爲空字符串
  • 找到01的父項- 點擊鏈接並添加.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

哦~~ ..我知道:P咖啡>睡眠。謝謝! – Iladarsda

1

不知道盒子的包裝有,但這個點擊功能應努力做到:

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

這段代碼是更大的東西的一部分。對困惑感到抱歉。 – Iladarsda