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