JQuery .click传递变量

rus*_*ell 6 variables jquery click

PROPB.很简单,但不适合我.希望在单击函数上传递变量,以根据单击的链接显示div a或div b.我的代码是这样的

$('.view').click(function() {
    var id = this.id.replace('view_', "");
if(id=1) { $('#show').show('slow'); }
if(id=2 ) { $('#show2').show('slow'); }
$('#categories').hide('slow');
    return false;
  });
  }); 
Run Code Online (Sandbox Code Playgroud)

但显然if语句是错误的 - 我知道我只是以它们为例.任何建议?谢谢,谢谢

Dou*_*ner 6

您的值分配1id的,而不是测试匹配:

if(id = 1) {} // WRONG: this means if id is successfully SET to 1
Run Code Online (Sandbox Code Playgroud)

这是它应该是什么样子:

$('.view').click(function() {
    var id = this.id.replace('view_', "");

    if(id == 1)       { $('#show').show('slow'); }
    else if(id == 2 ) { $('#show2').show('slow'); }

    $('#categories').hide('slow');

    return false;
});
Run Code Online (Sandbox Code Playgroud)

如果你发现自己犯了很多错误,你应该改变测试:

if( 1 == id) {} // Works
if( 1 = id ) {} // Throws JS error instead of failing silently
Run Code Online (Sandbox Code Playgroud)


Nae*_*raz 4

尝试这个...

var id = parseInt(this.id.replace('view_', ""), 10);
if(id === 1) { 
 $('#show').show('slow'); 
} else if(id === 2 ) { 
 $('#show2').show('slow'); 
}
Run Code Online (Sandbox Code Playgroud)

1 '='用于赋值
2 '=='是带类型转换的比较
3 '==='是不带类型转换的比较