好的,所以我正试图通过微芯片的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>
即可显示结果
我说错了吗?
答案 0 :(得分: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)
答案 1 :(得分:0)
此行看起来不正确......
if(getXMLValue(xmlData, 'temp0') < 'temp2')
应该是......?
if(getXMLValue(xmlData, 'temp0') < getXMLValue(xmlData, 'temp2'))
除非getXMLValue返回多种变体,否则你需要在比较之前转换它
答案 2 :(得分:0)
这样的事情:
var temp0 = parseInt(getXMLValue(xmlData, 'temp0'))
, temp2 = parseInt(getXMLValue(xmlData, 'temp2'));
if( temp0 < temp2 ) {
...
} else {
...
}
答案 3 :(得分: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&gt;这将显示ON。 temp0
如果temp0&lt;和OFF TEMP2
感谢大家的支持