2015-11-05 70 views
0

相比,我有以下的jQuery的功能,但其對if語句拋出一個錯誤:TypeError: elem.nodeName is undefinedJQuery的錯誤字符串

當我輸出它的正常工作if語句之外的console.log?

<input type="radio" name="contact" value="email">email 
<input type="radio" name="contact" value="tel">tel 
<input type="radio" name="contact" value="writing">writing 

$(function() { 
var myListRef = {'email':'email','tel':'tel','writing':'writing'} 
$('[name="contact"]').click(function() { 

    $.each(myListRef , function(key, value) { 
     if(value !== $(this).val()) { 
      console.log($(this).val()); 
     }  
    }); 

}); 
}); 

我在做錯if語句?

+1

的'值裏面的'$ .each' this'變化 - 外界將它保存在一個變量事件處理程序並將其與緩存的值進行比較 –

+0

*我有以下jquery函數* - 您認爲jquery函數是什麼? – Amit

+0

@amit。請解釋。 – adam78

回答

5

你正在改變與每個範圍......循環之前保存this

$('[name="contact"]').click(function() { 
    $this = $(this); 
    $.each(myListRef, function (key, value) { 
     if (value !== $this.val()) { 
      console.log($this.val()); 
     } 
    }); 

});