我是一个包含一些信息和编辑按钮的动态div。 但是,其中一些动态div应该是可编辑的。
我从我的对象数组生成所有这些动态div,它保存了类型=" external"的对象的数据。或"内部"。
每个动态div都会有一个名为“' box”的类。每个动态编辑按钮都有一个名为' edit-btn'。
的类所以,我有一个条件,如果在动态div中obj.type =" external"然后编辑按钮应该可用,否则它应该被隐藏。
我如何实现这一目标?
var myData = [{company: "ABC", url:"www.abc.com", type:"internal"},{company: "CDE", url:"www.cde.com", type:"internal"},{company: "DEF", url:"www.def.com", type:"external"},{company: "EFG", url:"www.efg.com", type:"internal"},{company: "FGH", url:"www.fgh.com", type:"external"}];
$('#createData').click(function(){
createDisplay();
});
function createDisplay(){
myData.forEach(function(obj){
$('.container').append(
$('<div>').addClass('box').append(
$('<label>').text('Company Website: '),
$('<a>').addClass('compUrl').attr('href', obj.url).text(obj.company),
$('<br /><button>').addClass('.edit-btn').text('Edit')
)
)
});
}
&#13;
.box{
height: 100px;
background-color: skyblue;
border: 1px solid black;
margin-top: 5px;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
<div class="container">
</div>
<button id="createData">Create divs</button>
&#13;
答案 0 :(得分:4)
您可以使用Conditional (ternary) Operator
obj.type =='internal'? $('<br /><button>').addClass('.edit-btn').text('Edit'): ''
var myData = [{company: "ABC", url:"www.abc.com", type:"internal"},{company: "CDE", url:"www.cde.com", type:"internal"},{company: "DEF", url:"www.def.com", type:"external"},{company: "EFG", url:"www.efg.com", type:"internal"},{company: "FGH", url:"www.fgh.com", type:"external"}];
$('#createData').click(function(){
createDisplay();
});
function createDisplay(){
myData.forEach(function(obj){
$('.container').append(
$('<div>').addClass('box').append(
$('<label>').text('Company Website: '),
$('<a>').addClass('compUrl').attr('href', obj.url).text(obj.company),
obj.type =='internal'? $('<br /><button>').addClass('.edit-btn').text('Edit'): ''
)
)
});
}
&#13;
.box{
height: 100px;
background-color: skyblue;
border: 1px solid black;
margin-top: 5px;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
<div class="container">
</div>
<button id="createData">Create divs</button>
&#13;