为什么这个开关盒不工作?我已经尝试了所有可能的语法,但它只是不起作用。或者在这种情况下,开关盒是错误的方法吗?
jQuery('#main input').blur(function() {
switch(jQuery(this).attr('name') {
case 'email':
jQuery(this).val('That's you e-Mail adress.');
break;
case 'nickname':
jQuery(this).val('That's your nickname.');
break;
}
});
请注意:我在非冲突模式下使用jQuery,这就是我使用jQuery
代替$
的原因。
答案 0 :(得分:1)
您有两种类型的错误:
)
参数附近的括号switch
。'
)。更正后的代码:
jQuery('#main input').blur(function() {
switch(jQuery(this).attr('name')) { // Added a )
case 'email':
jQuery(this).val('That\'s you e-Mail adress.'); // Escaped the '
break;
case 'nickname':
jQuery(this).val('That\'s your nickname.'); // Escaped the '
break;
}
});
<强> 更新 强>
如果您不熟悉JavaScript中的转义字符串(例如上面的单词That's
),请查看此Stack Overflow问题:Escaping Strings in JavaScript
答案 1 :(得分:1)
在同一行中使用多个'
似乎会弄乱你的语法。改变如下,
jQuery('#main input').blur(function() {
switch(jQuery(this).attr('name')) { // <-- fix 1: added closing )
case 'email':
jQuery(this).val("That's you e-Mail adress."); // <-- fix 2: quotes
break;
case 'nickname':
jQuery(this).val("That's your nickname."); // <-- fix 3: quotes
break;
}
});
答案 2 :(得分:1)
这里有几个错误:
switch(jQuery(this).attr('name') {
缺少右括号。应该是:
switch(jQuery(this).attr('name')) {
你应该在这个字符串中转义引号:
jQuery(this).val('That's you e-Mail adress.');
像这样:
jQuery(this).val('That\'s you e-Mail adress.');