1
var send_value = [current_site_id, current_site_name, current_site_description];
console.log(send_value);
send_value = jQuery(this).is(':checked') ? send_value.push('add') : send_value.push('delete');
console.log(send_value);

结果是

[“12”,“qwrqweqwer”,“qwreqwr”]
4

我哪里错了?

PS。抱歉,我的错误在send_value =,无法理解它是如何到达那里的

4

3 回答 3

3

此行send_value = jQuery(this).is(':checked') ? send_value.push('add') : send_value.push('delete');分配 to 的返回,它不推​​送任何内容。返回值是数组对象的新长度,你可以在规范中看到pushsend_value

尝试这个:

send_value.push(jQuery(this).is(':checked') ? 'add' : 'delete');

推送三元的结果值
如果您发现它更具可读性,您可以将您的三元转换为表达式,而不是语句:

(jQuery(this).is(':checked') ? send_value.push('add') : send_value.push('delete'));//<-- notice surrounding parentheses

但是,坦率地说,如果您担心可读性,最好一起取消三元组恕我直言。

于 2012-11-23T11:44:15.637 回答
3

push推送完成后返回数组的长度。尝试这个:

var send_value = [current_site_id, current_site_name, current_site_description];
console.log(send_value);
send_value.push( jQuery(this).is(':checked') ? 'add' : 'delete' );
console.log(send_value);

此外,您应该使用对象而不是数组。send_value.site_id读起来比send_value[0]...

于 2012-11-23T11:44:39.703 回答
1
var result = jQuery(this).is(':checked') ? 'add' : 'delete';
    send_value.push(result);
于 2012-11-23T11:46:21.270 回答