比较字符串的JQuery错误

时间:2015-11-05 21:08:43

标签: javascript jquery

我有以下jquery函数,但它在if语句中抛出错误:TypeError: elem.nodeName is undefined

当我在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 个答案:

答案 0 :(得分:5)

您正在使用每个更改范围...在循环之前保存this

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

});