2012-02-02 74 views
1

我覺得有點愚蠢,我試圖在這裏找到答案,但找不到正確的東西。希望可以有人幫幫我。jquery var等於var doesnt工作

我只是嘗試匹配兩個不同的變量,因此,如果它們是相同的項目應該得到一個新的類:

var recentposttitle = $('#catblogoutput h2.post-title').text(); 
$('#sub-nav ul li a').each(function() { 
    var subnavlink = $(this).attr('title'); 


    if (subnavlink == recentposttitle) { 
     $(this).addClass('selected'); 

    } 
}); 

那麼這是行不通的。任何想法爲什麼?欣賞它!

+0

你是什麼意思「它不工作」?你可以provaide的例子嗎?你的代碼看起來不錯 – 2012-02-02 17:11:26

+1

比較完美的作品,而不是你的期望。這些元素的內容是什麼? – 2012-02-02 17:11:27

+0

永遠不要低估幾個簡單的警報將提供您在JavaScript調試權力方面。 – OnResolve 2012-02-02 17:15:32

回答

0

同意。你的代碼是有效的。

嘗試將字符串打印到控制檯尋求幫助。機會是,他們不匹配。

var recentposttitle = $('#catblogoutput h2.post-title').text(); 

$('#sub-nav ul li a').each(function(){ 
    var subnavlink = $(this).attr('title');  

    console.log("Post Title: '" + recentposttitle + "'"); 
    console.log("Menu Link: '" + subnavlink + "'"); 

    if(subnavlink==recentposttitle){   
     $(this).addClass('selected'); 
    } 
}); 
+0

如果你不確定如何去(或沒有)控制檯,你可以用「alert」代替「console.log」,它會提供一個JavaScript彈出窗口。 – 2012-02-02 17:21:17

+0

另外,確保在腳本運行之前加載HTML。將腳本移動到頁面底部或將jQuery包裝在... $(document).ready(function(){// your code}); – 2012-02-02 17:24:26

+0

謝謝你。我可以看到的唯一區別是爲帖子標題增加一個空格... hmmm – 2012-02-02 17:33:00

0

你的問題在於:

var recentposttitle = $('#catblogoutput h2.post-title').text(); 

我不認爲這是你想要的。每jQuery的文檔,所述的.text()函數定義爲:

說明:獲取每個元素的組合的文本內容集合中的匹配元素的 ,包括它們的後代。

這應該指向你的答案

0

的代碼做的工作。我測試了它,並給出了正確的標記,它工作得很好。

退房的例子,標記比較,以你自己:

http://jsfiddle.net/Guffa/NHexj/

+0

謝謝,我的帖子標題是像「建築師和用戶之間的心智休息」,而標題等同於:標題=「建築師和用戶之間的心理休息」,當我運行它時,它給了我一個錯誤。任何想法爲什麼? – 2012-02-02 17:35:25

+0

沒關係,沒有錯誤,但我認爲它在帖子標題中的額外空間,該死的現在我該如何擺脫這個......非常感謝,幫助了很多! – 2012-02-02 17:36:30

0

的代碼看起來是正確的,現在我們需要看到的是伴隨而來的標記,因爲在你的代碼段查詢不能在文檔中匹配任何內容,具體取決於它是什麼。

對於這樣的事情,螢火蟲或開發人員工具和迭代中的斷點應該讓你很快排序。

+0

我認爲他們做了,謝謝 – 2012-02-02 17:37:16