2

好的,所以我正在尝试使用微芯片的 Pic-web 监控和控制某些东西。除了一件事,我设法将它全部编程。我需要比较它给我的两个温度,如果其中一个比另一个小,则需要激活一个继电器,如果它更大或相等,则必须激活另一个继电器。据我了解,Pic-web 更新了一个 xml 文件(status.xml),然后网站(使用 ajax)从那里获取值并将它们显示在网页上。

XML 文件如下所示

<response>
<temp0>~temp~</temp0>
<temp2>~tempc~</temp2>
</response

我用来获取网页中的值的 ajax 代码

document.getElementById('temp0').innerHTML = getXMLValue(xmlData, 'temp0');
document.getElementById('temp2').innerHTML = getXMLValue(xmlData, 'temp2');

为了显示它们,我使用

<span id="temp0"style="font-weight:normal">?</span>
<span id="temp2"style="font-weight:normal">?</span>

我需要做的就是比较 temp0 和 temp2

    var temp0 = parseFloat(document.getElementById('temp0').innerHTML)
    var temp2 = parseFloat(document.getElementById('temp2').innerHTML)

    if( temp0 < temp2 ) 
    {
        document.getElementById('temp3').innerHTML = '<font color="#00FF00">ON</font>';
    } 
    else 
    {
        document.getElementById('temp3').innerHTML = '<font color="#00FFFF">OFF</font>';

}

我只是添加<span id="temp3">?</span>以显示结果

我对么?

4

4 回答 4

1
if(getXMLValue(xmlData, 'temp0') < 'temp2')

'temp0'不是 的值document.getElementById('temp0'),它只是一个包含“temp0”的字符串。

您需要将其分配给变量并将其转换为字符串中的数字:

var temp0 = parseFloat(document.getElementById('temp0').innerHTML)
var temp2 = parseFloat(document.getElementById('temp2').innerHTML)

然后使用:

if(temp0 < temp2)
于 2012-06-19T16:27:05.187 回答
0

这条线看起来不正确...

if(getXMLValue(xmlData, 'temp0') < 'temp2')

应该是……?

if(getXMLValue(xmlData, 'temp0') < getXMLValue(xmlData, 'temp2'))

并且除非 getXMLValue 返回一些种类,否则您需要在比较之前对其进行转换

于 2012-06-19T16:26:05.570 回答
0

像这样的东西怎么样:

var temp0 = parseInt(getXMLValue(xmlData, 'temp0'))
  , temp2 = parseInt(getXMLValue(xmlData, 'temp2'));

if( temp0 < temp2 ) {
    ...
} else {
    ...
}
于 2012-06-19T16:27:46.350 回答
0
// Compare the two temperatures
var temp0 = parseFloat(document.getElementById('temp0').innerHTML)
var temp2 = parseFloat(document.getElementById('temp2').innerHTML)

if( temp0 < temp2 ) {
    document.getElementById('temp3').innerHTML = '<font color="#00FF00">ON</font>';
} else {
    document.getElementById('temp3').innerHTML = '<font color="#FF0000">OFF</font>';
}

如果 temp2 > temp0 这将显示 ON

如果 temp0 < temp2 则关闭

谢谢大家的支持

于 2012-06-21T11:16:10.170 回答