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,否则不创建它。这非常有效。我还能够为我的所有可选项目复制它。非常感谢你!