2015-05-21 54 views
1

我給了一個元素兩個動態添加的類(一個用於統一樣式,另一個用於區分編程他們的點擊函數)。下面是代碼塊:檢查一個元素是否在if語句中有動態添加的類

$(document).on('click', "section.notelink", function() { 
    chrome.storage.local.get('noteTitleList', function (x) { 
     var titleSet = x.noteTitleList; 
     for(var c = 0; c < titleSet.length; c++) { 
      var noteTitle = titleSet[c].substr(5); 
      if($(this).hasClass('note-'+c)) { 
       alert('check'); 
      } 
     } 
    }); 
}); 

該元件應具有類NOTELINK(其它找到)和筆記記錄#(取值範圍爲0 - 5目前)。我試着檢查是否有一個類沒有成功使用jquery hasClass方法。

回答

4

這是作用域的問題,因爲你是this指向的值之後調用$(this)不再是指當前的jQuery DOM節點(它指的是鍍鉻的方法)。在進入chrome方法之前捕獲你的dom節點:

$(document).on('click', "section.notelink", function() { 
    var $this = $(this); 
    chrome.storage.local.get('noteTitleList', function (x) { 
     var titleSet = x.noteTitleList; 
     for(var c = 0; c < titleSet.length; c++) { 
      var noteTitle = titleSet[c].substr(5); 
      if($this.hasClass('note-'+c)) { 
       alert('check'); 
      } 
     } 
    }); 
}); 
+2

Upvote for the FGITW。打我吧:) – Ted

+0

@Ted haha​​haha,謝謝:) –

+0

@Rob M.謝謝,這完美的作品! – Nesiehr

相關問題