-3

JSON ファイルがあり、ブートストラップ テーブルに表示しています。

表示に使用しているコードは次のとおりです。

$(document).ready(function(){
    $.getJSON(url, function(data){
        content = '<h1><p class="p1"><span class="s1">' + 
                  data.test.name + '</span></p></h1><table class="table table-bordered"><tbody><tr><td>Section:</td><td>' + 
                  data.test.section + '</td></tr><tr><td>Synonyms:</td><td>' + 
                  data.test.synonyms + '</td></tr><tr><td>Container:</td><td>' + 
                  data.test.container + '</td></tr><tr><td>Reference Ranges:</td><td>' + 
                  data.test.reference + '</td></tr><tr><td>Availability:</td><td>' + 
                  data.test.availability + '</td></tr><tr><td>Special Handling:</td><td>' + 
                  data.test.specialHandling + '</td></tr><tr><td>Additional Comments:</td><td>' + 
                  data.test.additionalComments + '</td></tr></tbody></table>';
            $(content).appendTo("#main");
            $("#main").fadeIn( );

    });
}); 

= である値を「null」に隠したいと思っていて苦労しています。

4

2 に答える 2

1

空の値だけが必要で、偽の値が返される可能性がない場合、これは null 値と欠損値の両方で機能します。

フィドルで動作するように適応

働くフィドル

var data = {
    test: {
        name: "bob",
        section: null,
        synonyms: "this, that",
        container: "box",
        reference: null,
        availability: null,
        specialHandling: "be careful",
        additionalComments: "No comment"
    }
};

var content = '<h1><p class="p1"><span class="s1">' + 
          (data.test.name || '') + '</span></p></h1><table class="table table-bordered"><tbody><tr><td>Section:</td><td>' + 
          (data.test.section || '') + '</td></tr><tr><td>Synonyms:</td><td>' + 
          (data.test.synonyms || '') + '</td></tr><tr><td>Container:</td><td>' + 
          (data.test.container || '') + '</td></tr><tr><td>Reference Ranges:</td><td>' + 
          (data.test.reference || '') + '</td></tr><tr><td>Availability:</td><td>' + 
          (data.test.availability || '') + '</td></tr><tr><td>Special Handling:</td><td>' + 
          (data.test.specialHandling || '') + '</td></tr><tr><td>Additional Comments:</td><td>' + 
          (data.test.additionalComments || '') + '</td></tr></tbody></table>';
    $(content).appendTo("#main");
    $("#main").fadeIn( );

バージョン 2

このバージョンでは、スクラブ機能を使用して、"()" などの他の値を削除します。さらに条件を追加する場合は、スクラブ ロジックを再検討することをお勧めします...

働くフィドル

// Sample dataset
var data = {
    test: { 
        "name": "RNA Polymerase III Antibody", 
        "id": 96800, 
        "container": null, 
        "reference": null,
        "section": null, 
        "synonyms": "()", 
        "availability": null, 
        "specialHandling": null, 
        "additionalComments": null 
    }
};

// Extra assignment kept for clarity
function scrub(inStr) {
    inStr = inStr || '';  // Set to self if it is a truthy value
    inStr = "()" === inStr ? '' : inStr;
    return inStr;
}

var content = '<h1><p class="p1"><span class="s1">' + 
          scrub(data.test.name) + '</span></p></h1><table class="table table-bordered"><tbody><tr><td>Section:</td><td>' + 
          scrub(data.test.section) + '</td></tr><tr><td>Synonyms:</td><td>' + 
          scrub(data.test.synonyms) + '</td></tr><tr><td>Container:</td><td>' + 
          scrub(data.test.container) + '</td></tr><tr><td>Reference Ranges:</td><td>' + 
          scrub(data.test.reference) + '</td></tr><tr><td>Availability:</td><td>' + 
          scrub(data.test.availability) + '</td></tr><tr><td>Special Handling:</td><td>' + 
          scrub(data.test.specialHandling) + '</td></tr><tr><td>Additional Comments:</td><td>' + 
          scrub(data.test.additionalComments) + '</td></tr></tbody></table>';
    $(content).appendTo("#main");
    $("#main").fadeIn( );
于 2013-08-14T20:45:05.217 に答える
0

すでに述べたコメントのように、値をどのように出力したいかは言いませんでした。

このデータが返されたとします。

var data = {};
data.test = {
    section: "mySection",
    synonyms: "mySyn",
    container: "myContainer",
    reference: undefined,
    availability: "myAvail",
    specialHandling : undefined,
    additionalComments: "myComment"
}

そして、data.test と同じキーを持つオブジェクトがあります。

var labels = {};
labels.test = {
    section: "Section",
    synonyms: "Synonyms",
    container: "Container",
    reference: "Reference Ranges",
    availability: "Availability",
    specialHandling: "Special Handling" ,
    additionalComments: "Additional Comments"
}

次の関数はデータを書き込むことができます

function writeTablerow(labels, data){   
    for (var key in data) {
       if (data.hasOwnProperty(key) && data[key] !== undefined) {
          console.log(labels[key], data[key]);
       }
    }
};

次のように呼び出します。

writeTablerow(labels.test, data.test);
于 2013-08-14T20:50:37.317 に答える