添加模板时更改json属性上的图像

时间:2016-06-25 22:06:27

标签: javascript json this mustache

图像可以以JSON格式包含[1,2,3,4]个状态(占位符,处理,接受,拒绝)。我正在找出一个函数来检查属性并选择正确的图像放在Mustache HTML中。

我尝试了以下内容:

for (let i=0;i<101;i++) {
        var output = Mustache.render(template, view[i]);
        $('#entryTable tbody').append(output);

        if (view[i].status == 2) {
            this.getElementById('picture1').src= 'img/analyzing.png';
        } else if (view[i].status == 3) {
            this.getElementById('picture1').src= 'img/irrelevant.png';
            console.log(this)
        } else if (view [i].status == 4) {
            this.getElementById('picture1').src= 'img/relevant.png';
        }

但是&#39;这个&#39;是指文件,而不是图像 - &gt;它只会更改出现的第一张图像(重复所有条目)。

接下来,我试过了:

 for (let i=0;i<101;i++) {
        var output = Mustache.render(template, view[i]);
        $('#entryTable tbody').append(function() {

//the default image in the template is state 1, hence it checks for state 2 and above

        if (view[i].state == 2) {
            this.getElementById('picture1').src= 'img/analyzing.png';
        } else if (view[i].state == 3) {
            this.getElementById('picture1').src= 'img/irrelevant.png';
            console.log(this)
        } else if (view [i].state == 4) {
            this.getElementById('picture1').src= 'img/relevant.png';
        }

        return output;
});

似乎(?)工作但只附加一个条目。

我没有经历过&#39;这个&#39;,我如何将它带到正确的上下文/范围来更改条目特定的图像?

1 个答案:

答案 0 :(得分:0)

解决

if (view[i].state === 1) {
            $("#entryTable tbody tr .status1").eq(i).attr("src", "img/analyzing.png");
        } else if (view[i].state === 3) {
            $("#entryTable tbody tr .status1").eq(i).attr("src", "img/irrelevant.png");
        } else if (view[i].state === 4) {
            $("#entryTable tbody tr .status1").eq(i).attr("src", "img/relevant.png");
        }
}