我有以下代碼偵聽插入的DOM節點類不被傳遞
$('#box').on('DOMNodeInserted', function(e) {
var news = e.target.className.split(" ");
if (news[news.length-1].indexOf("today")){
//do something
}
});
當一個節點被插入時,上述代碼是應該檢查類,看它是否具有字符串「今天」。插入HTML的結構是這樣的......
<div class="posts news today">
如果有「今天」,它應該「做什麼」
的問題是,由於某種原因,上述功能顯示使得插入節點具有一類
""
即使所插入元件是
<div class="posts news today">
然而,已經存在的元素顯示正確的類
posts news today
問題就出在這代碼的某個地方,但我不知道爲什麼插入節點將被解釋爲沒有一類,而現有的節點做。
爲了清楚起見,此代碼
$('#box').on('DOMNodeInserted', function(e) {
var news = e.target.className;
console.log(news);
});
對於已經在頁面加載存在的元素,但顯示「」爲插入的元素輸出正確的類名。如上所述,插入的元素包含正確的類信息,它只是不被上面的代碼解釋。
你能告訴我們你插入? –
-1 == true,您需要測試indexOf是否等於-1,而不是等同於它。 https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/indexOf –
只要使用'if($(e.target).hasClass(「today」)){' – Ian