2011-02-09 33 views
1

我想知道爲什麼這不起作用?如果一個有attr rel = lightbox然後addClass,問題

var attr = $("a").attr('rel'); 
if (typeof attr == 'lightBox') { 
    $(this).addClass("lightbox"); 
} 

我想添加一個類到REL屬性設置爲「lightBox」的鏈接。

這應該工作......對吧?

+0

究竟哪些不起作用? – 2011-02-09 11:07:30

+0

有點純javascript學習不會傷害,你應該閱讀js教程之前開始與jQuery – Guillaume86 2011-02-09 11:11:46

回答

5
$('a[rel="lightbox"]').addClass("lightbox"); 

這應該做的伎倆。

typeof - 返回數據類型不是值!所以你試圖比較類型(字符串)和值(lightBox)。

1

typeof絕不會在這方面(您想將字符串的內容比較代替,即if (attr == 'lightBox'))工作,this不會在這方面提供要麼,或至少沒有表現出所需的元素。

爲什麼不能簡單地做一個

$("a[rel='lightBox']").addClass("lightBox"); 

0

不,它不會工作。

typeof測試類型的屬性 - 在這種情況下,rel屬性始終是一個字符串。拿出typeof,它不會工作。

另外,哪裏有$this從哪裏來?