Javascript 如果资源对象为空,如何删除div

Javascript 如果资源对象为空,如何删除div,javascript,twitter-bootstrap-3,Javascript,Twitter Bootstrap 3,我正在创建一个显示在网页上的组织在线列表/目录。每个列表都有组织名称,状态,网站链接,培训日历链接,等等。提供目录的信息来自我从excel文件导出的xml文件 我有一个datastructure.js文件,它定义了我的资源对象并从xml中加载它。然后我有一个不同的script.js文件,它在网页上生成格式化为bootstrap3面板的结果。这部分都很好 这就是js创建面板的样子: // generate resource table based on selected filters funct

我正在创建一个显示在网页上的组织在线列表/目录。每个列表都有
组织名称
状态
网站链接
培训日历链接
,等等。提供目录的信息来自我从excel文件导出的xml文件

我有一个
datastructure.js
文件,它定义了我的资源对象并从xml中加载它。然后我有一个不同的
script.js
文件,它在网页上生成格式化为bootstrap3面板的结果。这部分都很好

这就是js创建面板的样子:

// generate resource table based on selected filters
function generateResults(state) {
    var table = $('#LibraryResults');
    // first clear the table
    table.empty();
    // next generate items matching filters
        $.each(resource_list, function(i, e) {
            if (state == "" || state == e.state ) {
                // block div panel
                var iDiv = document.createElement('div');
                iDiv.id = 'column'+i;
                iDiv.className = 'panel panel-primary';
                document.getElementById('LibraryResults').appendChild(iDiv);

                // heading panel
                var innerDiv1 = document.createElement('div');
                innerDiv1.id = 'heading'+i;
                innerDiv1.className = 'panel-heading';
                iDiv.appendChild(innerDiv1); 

                // body panel
                var innerDiv2 = document.createElement('div');
                innerDiv2.id = 'body'+i;
                innerDiv2.className = 'panel-body';
                iDiv.appendChild(innerDiv2);

                // training calendar div
                var trainDiv = document.createElement('div');
                trainDiv.id = 'train'+i;
                trainDiv.className = 'col-sm-3 col-xs-6';
                innerDiv2.appendChild(trainDiv);

                //I want these items to go inside the trainDiv
                    $(trainDiv).append( 
                    "<span class='glyphicon glyphicon-calendar'></span> <a href='" + e.urltrain + "' target='_blank'>Training Calendar</a>"
                    );
                }
            });
    }
//根据所选筛选器生成资源表
函数生成器结果(状态){
变量表=$(“#LibraryResults”);
//首先清理桌子
table.empty();
//下一步生成匹配筛选器的项
$。每个(资源列表、功能(即,e){
if(state==“”| | state==e.state){
//块分区面板
var iDiv=document.createElement('div');
iDiv.id='列'+i;
iDiv.className='panel panel primary';
document.getElementById('LibraryResults').appendChild(iDiv);
//标题板
var innerDiv1=document.createElement('div');
innerDiv1.id='标题'+i;
innerDiv1.className='面板标题';
iDiv.appendChild(innerDiv1);
//车身板
var innerDiv2=document.createElement('div');
innerDiv2.id='body'+i;
innerDiv2.className='面板主体';
iDiv.appendChild(innerDiv2);
//训练日历组
var trainDiv=document.createElement('div');
trainDiv.id=‘列车’+i;
trainDiv.className='col-sm-3 col-xs-6';
innerDiv2.appendChild(trainDiv);
//我想把这些东西放进火车舱里
$(trainDiv).附加(
" "
);
}
});
}
我的挑战:

组织提供的一些信息是可选的,因此我的xmls数据中可能有一个空字段(即资源对象“urltrain”为空)。因此,
trainDiv
中的
'training calendar'链接有一个空href

我想做的是,如果资源
对象(urltrain)
为空,我想删除受影响的
div(trainDiv)
及其内容

谈到javascript,我是个新手。我可以根据自己的新需求对代码进行一些调整,但我对语言的了解还不够,无法创建新的东西


提前谢谢。

您可以尝试以下内容。我添加了一个if条件,它将有条件地添加div。请告诉我这是否有效,否则我可以修改解决方案以适合您的用例

// generate resource table based on selected filters
function generateResults(state) {
    var table = $('#LibraryResults');
    // first clear the table
    table.empty();
    // next generate items matching filters
    $.each(resource_list, function(i, e) {
        if (state == "" || state == e.state ) {
            // block div panel
            var iDiv = document.createElement('div');
            iDiv.id = 'column'+i;
            iDiv.className = 'panel panel-primary';
            document.getElementById('LibraryResults').appendChild(iDiv);

            // heading panel
            var innerDiv1 = document.createElement('div');
            innerDiv1.id = 'heading'+i;
            innerDiv1.className = 'panel-heading';
            iDiv.appendChild(innerDiv1); 

            // body panel
            var innerDiv2 = document.createElement('div');
            innerDiv2.id = 'body'+i;
            innerDiv2.className = 'panel-body';
            iDiv.appendChild(innerDiv2);

            // training calendar div
            if(e.urltrain != ""){
              var trainDiv = document.createElement('div');
              trainDiv.id = 'train'+i;
              trainDiv.className = 'col-sm-3 col-xs-6';
              innerDiv2.appendChild(trainDiv);
               //I want these items to go inside the trainDiv
                $(trainDiv).append( 
                "<span class='glyphicon glyphicon-calendar'></span> <a href='" + e.urltrain + "' target='_blank'>Training Calendar</a>"
                );
            }



            }
        });
}
//根据所选筛选器生成资源表
函数生成器结果(状态){
变量表=$(“#LibraryResults”);
//首先清理桌子
table.empty();
//下一步生成匹配筛选器的项
$。每个(资源列表、功能(即,e){
if(state==“”| | state==e.state){
//块分区面板
var iDiv=document.createElement('div');
iDiv.id='列'+i;
iDiv.className='panel panel primary';
document.getElementById('LibraryResults').appendChild(iDiv);
//标题板
var innerDiv1=document.createElement('div');
innerDiv1.id='标题'+i;
innerDiv1.className='面板标题';
iDiv.appendChild(innerDiv1);
//车身板
var innerDiv2=document.createElement('div');
innerDiv2.id='body'+i;
innerDiv2.className='面板主体';
iDiv.appendChild(innerDiv2);
//训练日历组
如果(例如urltrain!=“”){
var trainDiv=document.createElement('div');
trainDiv.id=‘列车’+i;
trainDiv.className='col-sm-3 col-xs-6';
innerDiv2.appendChild(trainDiv);
//我想把这些东西放进火车舱里
$(trainDiv).附加(
" "
);
}
}
});
}

一种方法是,您可以设置div的属性(display:none),或者另一种方法是从DOM中删除div元素。因此,仔细查看代码后,您可以在创建trainDiv之前设置一个if条件,并检查e.urltrain是否为空,然后只创建该div,否则不创建它。这非常有效。我还能够为我的所有可选项目复制它。非常感谢你!