Javascript 检查jQuery中的null或未定义值

Javascript 检查jQuery中的null或未定义值,javascript,jquery,codeigniter,undefined,Javascript,Jquery,Codeigniter,Undefined,我真的被这个问题弄疯了…即使我读了很多我也弄不明白的主题…所以对于已经讨论过的主题,我提前表示歉意,但我需要一个具体的帮助 我需要做的是:检查变量是否为空;在这种情况下,请打印徽章 远程框架是Codeigniter 3,我确信代码是正确的,服务器脚本返回JSON格式的空变量(infos)和未定义变量(crid) Jquery中用于打印徽章的文本模板如下所示: $(` <p class="badges"> ${(() => {

我真的被这个问题弄疯了…即使我读了很多我也弄不明白的主题…所以对于已经讨论过的主题,我提前表示歉意,但我需要一个具体的帮助

我需要做的是:检查变量是否为空;在这种情况下,请打印徽章

远程框架是Codeigniter 3,我确信代码是正确的,服务器脚本返回JSON格式的空变量(infos)和未定义变量(crid)

Jquery中用于打印徽章的文本模板如下所示:

$(`
    
    <p class="badges">
    ${(() => {
      if (data.pictures[i].status == '1'){
        return `<span class="badge badge-success">Published</span>`
      } else {
        return `<span class="badge badge-warning">Hidden</span>`
      }
    })()}
    ${(() => {
        if (data.pictures[i].infos){
            console.log('Infos are ' + data.pictures[i].infos);
            return `<span class="badge badge-info">Info</span>`
        }
    })()}
    ${(() => {
        if (typeof data.pictures[i].crid !== 'undefined' && data.pictures[i].crid !== null){
            return `<span class="badge badge-primary">Credit</span>`
        }
    })()}
    </p>
`)
$(`

${(() => { if(data.pictures[i].status==“1”){ return`Published` }否则{ return`Hidden` } })()} ${(() => { if(data.pictures[i].infos){ console.log('Infos是'+data.pictures[i].Infos); return`Info` } })()} ${(() => { if(type of data.pictures[i].crid!='undefined'&&data.pictures[i].crid!==null){ 退回信用证` } })()}

`)
第一个条件代码运行良好(data.pictures[i].status),第二个和第三个条件代码让我抓狂。 第二个条件代码(data.pictures[i].infos)在浏览器中返回undefined…服务器脚本返回的JSON代码中不存在该变量。 第三个条件代码(data.pictures[i].crid)在浏览器中返回undefined。。。JSON数据中的变量存在,但为空

如果变量为空或不存在,我想去掉浏览器中未定义的变量…如果它有值,我想打印徽章

当然,我做了无休止的测试来替换条件代码……但有时即使JSON变量为空,我也会得到徽章……否则我会得到未定义的徽章


非常感谢您的帮助或提示

您的函数只是一个if,如果没有进入if,则不会返回任何内容。这意味着它返回
未定义的

您需要从函数中返回“”

${(() => {
    if (data.pictures[i].infos){
        console.log('Infos are ' + data.pictures[i].infos);
        return `<span class="badge badge-info">Info</span>`
    }
    return '';
})()}
${(()=>{
if(data.pictures[i].infos){
console.log('Infos是'+data.pictures[i].Infos);
return`Info`
}
返回“”;
})()}
就我个人而言,我只会使用三元组

const status = data.pictures[i].status == '1' ? 
    '<span class="badge badge-success">Published</span>' : 
    '<span class="badge badge-warning">Hidden</span>'
const info = data.pictures[i].infos ? 
    '<span class="badge badge-info">Info</span>' : ''
const crid = (typeof data.pictures[i].crid !== 'undefined' && data.pictures[i].crid !== null) ? 
    '<span class="badge badge-primary">Credit</span>' : ''

$(`<p class="badges">
    ${status}
    ${info}
    ${crid}
</p>`)
const status=data.pictures[i]。status==1?
“已出版”:
“隐藏的”
const info=data.pictures[i].infos?
“信息”:”
const crid=(typeof data.pictures[i].crid!='undefined'&&data.pictures[i].crid!==null)?
“信用证”:“
$(`

${status} ${info} ${crid}

`)
您的函数只是一个if,如果没有进入if,则不会返回任何内容。这意味着它返回
未定义的

您需要从函数中返回“”

${(() => {
    if (data.pictures[i].infos){
        console.log('Infos are ' + data.pictures[i].infos);
        return `<span class="badge badge-info">Info</span>`
    }
    return '';
})()}
${(()=>{
if(data.pictures[i].infos){
console.log('Infos是'+data.pictures[i].Infos);
return`Info`
}
返回“”;
})()}
就我个人而言,我只会使用三元组

const status = data.pictures[i].status == '1' ? 
    '<span class="badge badge-success">Published</span>' : 
    '<span class="badge badge-warning">Hidden</span>'
const info = data.pictures[i].infos ? 
    '<span class="badge badge-info">Info</span>' : ''
const crid = (typeof data.pictures[i].crid !== 'undefined' && data.pictures[i].crid !== null) ? 
    '<span class="badge badge-primary">Credit</span>' : ''

$(`<p class="badges">
    ${status}
    ${info}
    ${crid}
</p>`)
const status=data.pictures[i]。status==1?
“已出版”:
“隐藏的”
const info=data.pictures[i].infos?
“信息”:”
const crid=(typeof data.pictures[i].crid!='undefined'&&data.pictures[i].crid!==null)?
“信用证”:“
$(`

${status} ${info} ${crid}

`)
在第二次检查中,您可以只测试
数据。未定义的图片[i].crid
和null将被评估为
false
。还有,哪一个给出了问题?这是一些令人困惑的代码,需要阅读。它返回undefined,因为您的函数返回undefined。在第二次检查中,您可以只测试
数据。图片[i]。未定义的crid
和null将被评估为
false
。还有,哪一个给出了问题?伙计,这是一些令人困惑的代码。它返回undefined,因为您的函数返回undefined。非常感谢您提供的宝贵帮助和提示,以改进代码!修复。非常感谢您提供的宝贵帮助和提示,以改进代码!固定的。