簡體   English   中英

檢查 null 或 jQuery 中的未定義值

[英]Check null or undefined value in jQuery

我真的對這個問題感到瘋狂......即使我已經閱讀了大量我無法弄清楚的主題......對於已經討論過的主題,我提前感到抱歉,但我需要一個具體的幫助。

我需要做的:檢查變量是否為空; 在這種情況下打印徽章。

遠程框架是 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>
`)

第一個條件代碼工作正常(data.pictures[i].status),第二個和第三個讓我抓狂。 第二個條件代碼( data.pictures[i].infos )在瀏覽器中返回 undefined ...服務器腳本返回的 JSON 代碼中不存在該變量。 第三個條件代碼( data.pictures[i].crid )在瀏覽器中返回 undefined ... JSON 數據中的變量存在但為空。

如果變量為空或不存在,我想擺脫瀏覽器中的未定義......如果它有一個值,我想打印徽章。

當然,我做了無休止的測試來替換條件代碼……但有時即使 JSON 變量為空,我也會得到徽章……否則我會得到未定義的。

非常感謝任何幫助或提示

您的函數只是一個 if,如果它們不 go 進入 if,則不會返回任何內容。 所以這意味着它返回undefined

您需要從函數中return ''

${(() => {
    if (data.pictures[i].infos){
        console.log('Infos are ' + data.pictures[i].infos);
        return `<span class="badge badge-info">Info</span>`
    }
    return '';
})()}

就個人而言,我只會使用三元

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>`)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM