4

我有以下内容:

    var diff = maxval - ui.value;
    $( "#output").html( diff?"diff. of " + diff : "no diff" ); 

现在我想为每个图像添加一个图像,如果值有差异,即:

    var diff = maxval - ui.value;
    $( "#output").html( diff?"<img src='yes.png' height='50' width='50' /> diff. of " + diff : "<img src='no.png' height='50' width='50' /> no diff" ); 

看起来好像这不起作用,我如何为该输出 div 中的每个设置一个图像?

4

2 回答 2

6

您正在检查基于diff,您不是要检查它是否大于0吗?

负数计算为true

Boolean(-1);//true
Boolean(50);//true
Boolean(-500);//true
Boolean(-0.001);//true
Boolean(0);//false

以下是我如何创建一个新图像,其源属性基于 diff 大于 0 决定。注意,我使用的是实际元素,所以我正在更改src属性而不是字符串值,我相信这会创建更具可读性代码。

var diff = maxval - ui.value;
var img = new Image();
img.src = (diff > 0 ) ? "yes.png" : "no.png";
img.width = "50px";
img.height = "50px";
$( "#output").empty().append(img);

这是一个完全原版的解决方案,包括文本节点:

var diff = maxval - ui.value;
var img = new Image();
img.src = (diff > 0 ) ? "yes.png" : "no.png"; // assuming you mean to check positive value
img.width = "50px";
img.height = "50px";
var el = document.getElementById("output");
el.appendChild(img);
var text = (diff > 0) ? "diff" : "no diff";
var txt = document.createTextNode(text);
el.appendChild(txt);

虽然这个“更长”代码的优势一开始似乎并不明显,但它很容易操作。我直接使用 DOM 元素而不是字符串,我可以轻松地添加或删除属性、更改属性、克隆它们等。

于 2013-05-28T14:58:45.640 回答
0

我不确定我是否正确理解了这个问题,如果是这样,至少这可以为您提供一些指导:

var yes = $( "<img>").attr( {"src": 'yes.png', "height": '50', "width": '50' });
var no = $( "<img>").attr( {"src": 'no.png', "height": '50', "width": '50' });

if(diff){
    $( "#output").append(yes).append('diff. of ' + diff);
}
else{
    $( "#output").append(no).append('no diff');
}

示例:http: //jsfiddle.net/WKg3A/

于 2013-05-28T15:03:17.107 回答