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 =
,无法理解它是如何到达的那样
答案 0 :(得分:3)
此行send_value = jQuery(this).is(':checked') ? send_value.push('add') : send_value.push('delete');
将push
的返回值分配给send_value
,它不会推送任何内容。返回值是数组对象的新长度as you can see in the specifications
试试这个:
send_value.push(jQuery(this).is(':checked') ? 'add' : 'delete');
推送你的三元组的结果值如果你发现它更具可读性,你可以把你的三元组变成一个表达式,而不是一个语句:
(jQuery(this).is(':checked') ? send_value.push('add') : send_value.push('delete'));//<-- notice surrounding parentheses
但是,坦率地说,如果你担心可读性,最好一起消除三合一的恕我直言。
答案 1 :(得分: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]
...
答案 2 :(得分:1)
var result = jQuery(this).is(':checked') ? 'add' : 'delete';
send_value.push(result);