javascript - 为什么我的脚本忽略空数组结果?

标签 javascript php jquery

我有一个脚本,主要检查查询是否有结果:

$.post('<?php echo site_url('xxx/yyy'); ?>',{data:no},function(result){
        if(!result){
            alert("No Data");
        }
        else{
            alert("Data retrieved");
        }
});

为什么当我得到空 JSON 数组时,我的 IF 会提醒 数据已检索。我尝试使用不同的数据(结果为空且结果为 true 的数据)执行 alert(result),但是这两个数据都在警告 Data returned

这是我的模型:

$this->db->select('*',FALSE);
    $this->db->from('t_penomoran tp');      
    $this->db->join('t_penomoran_detail t_pd', 'tp.nomor = t_pd.nomor');

    $this->db->where('tp.nomor',$nomor);

    $query = $this->db->get();
    return $query->result_array();

注意:
由于某种原因,当我对没有值的数据执行 alert(result.length) 时,结果是 2。但是,当我对没有值的数据执行 alert(result) 时,结果是 []

最佳答案

空数组是一个 truthy 值,这意味着在您的 if 语句中,它将计算为 true,这就是为什么您会看到 警报()。要修复此问题,请使用 length 属性:

if(!result.length) alert('no data')

关于javascript - 为什么我的脚本忽略空数组结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46902415/

相关文章:

javascript - 与 gdb 交互工作意外

php - Laravel,从 jquery 中的复选框获取值

php - Mac OS X El Capitan 需要 Mcrypt PHP 扩展

javascript - 在 Jtable && razor 应用程序中设置页面大小

javascript - 用于扩展 jQuery 的奇怪语法

javascript - 当用户单击 href "#"的链接时显示 <div>

javascript - javascript 和 ruby​​ 整数之间的区别(使用左移按位运算符)

javascript - 使用 jQuery 切换 CSS

javascript - 如何在rails中将json转换为html

php - 在函数中循环或多次调用函数,哪个更快?