根据JSON结果有条件地更改显示图像
Conditionally change display image based on JSON results
我是javascript和jQuery的新手,我试图在浏览器中显示JSON结果。我试图创建动态HTML,同时插入JSON结果。以下是JSON数据的示例:
[{"JobName":"JobDoSomething","JobStatus":2,"JobStatusString":"","JobPath":"''Mart''ControlCenter''","JobType":1},
{"JobName":"JobDoSomething2","JobStatus":2,"JobStatusString":"","JobPath":"''Mart''ControlCenter''","JobType":1},
{"JobName":"JobDoSomething3","JobStatus":4,"JobStatusString":"","JobPath":"''Mart''ControlCenter''","JobType":0}
下面是我用来显示结果的代码:
var seqIcon = 'img/BatchJobIcon.gif';
var jobIcon = 'img/Logo32x32.gif';
for(var i = 0; i < result.length; i++){
divs[parseInt(divs.length) - 1].innerHTML += '<div id="' + result[i].JobName + '" class="outerDiv">' +
'<div class="middleDiv">' +
'<div class="innerDiv">' +
'<img id="image" src=' + jobIcon + ' />' +
/* '<img id="image" src=' + 'if (' + result[i].JobType + '= 1) {' + "img/BatchJobIcon.gif" + '} else {' + jobIcon + '};' + '/>' + */
'<h3>' + result[i].JobName + '</h3>' +
'<p class="JobPath">' + result[i].JobPath + ' ' + result[i].JobStatus + ' ' + result[i].JobType + '</p>' +
'<p> <input type="button" id="btnRunJob" class="btn-minimal" value="Run Job" />' +
'<input type="button" id="btnGetLog" class="btn-minimal" value="Job Log" />' +
'</p>' +
'</div>' +
'</div>' +
'</div>';
$('#jobContainer').append(divs)
}
我想使用类似<img id="image" src=' + 'if (' + result[i].JobType + '= 1) {' + "img/BatchJobIcon.gif" + '} else {' + jobIcon + '};' + '/>
行(上面注释掉了)的东西,以便能够根据JSON结果的JobType交换所需的图像,但这不起作用。任何见解或建议都是赞赏的。谢谢。
这一行必须是:
'<img id="image" src=' + (result[i].JobType == 1 ? "img/BatchJobIcon.gif" : jobIcon) + '/>' +
这意味着,如果JobType变量等于1,输出"img/BatchJobIcon.gif",否则输出jobIcon变量。
数据绑定是最好的方法。像Angular、Knockout这样的框架提供了更简单的方法,在这些框架中,我们只需要用{{ result.JobName }}
这样的特殊通配符写一次html,然后用repeat="result in results"
这样的语法在html上应用repeat。如果你发现自己不得不做很多这样的事情,你必须仔细阅读它们。
按照您的方法,可以使用三元操作符。检查下面的代码,它被计算为:
+
if (row.JobType == 1) {
"img/BatchJobIcon.gif"
} else {
jobIcon
}
+
代码:
var seqIcon = 'img/BatchJobIcon.gif';
var jobIcon = 'img/Logo32x32.gif';
var html, $container = $('#jobContainer');
function formHtml(row) {
return '<div id="' + row.JobName + '" class="outerDiv">' +
'<div class="middleDiv">' +
'<div class="innerDiv">' +
'<img id="image" src=' + jobIcon + ' />' +
'<img id="image" src=' + (row.JobType == 1 ? "img/BatchJobIcon.gif" : jobIcon) + '/>' +
'<h3>' + row.JobName + '</h3>' +
'<p class="JobPath">' + row.JobPath + ' ' + row.JobStatus + ' ' + row.JobType + '</p>' '<p> <input type="button" id="btnRunJob" class="btn-minimal" value="Run Job" />' +
'<input type="button" id="btnGetLog" class="btn-minimal" value="Job Log" />' +
'</p>' +
'</div>' +
'</div>' +
'</div>';
}
result.forEach(function (row, i) {
html = formHtml(row);
$container.append(html);
});
相关文章:
- 从桌面读取python文件时高亮显示代码
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何在生成下载文件时显示加载动画
- React重新渲染但未显示正确的组件
- nodejs-expressjs上传图像并显示它们
- 使用JSP从服务器检索和显示图像
- 音频控件在mouseover上显示,在mouseout上淡出
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 显示5秒后隐藏潜水
- 画廊图像未显示
- 不显示带有本地json文件数据的谷歌地图脚本
- 如何将json数据显示为html
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- 高亮显示时编辑文本大小和颜色
- 有时数据是't显示在浏览器中
- 当鼠标悬停在文本中的单词上时显示警报
- 角度图表;t显示在我的页面中
- 显示图工具提示显示x轴的最后日期值,而不是当前值