javascript - 使用 ajax 比较两个 xml 值

标签 javascript html xml ajax

好的,所以我正在尝试使用来自微芯片的 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>显示结果

我说的对吗?

最佳答案

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)

关于javascript - 使用 ajax 比较两个 xml 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11105170/

相关文章:

javascript - 如何在 ASP.NET MVC 中定义 Angular 路由

java - 在 Android textSwitcher 中使用上标

java - 我一点击按钮,应用程序就停止工作

java - 使用 JAXB 从 DTD 文件生成 Java 类 - 如何修改 DTD?

javascript - 如何在文件上传时显示加载图形?

javascript - 我如何在这段代码中更有效地编写 jQuery?

javascript - 聊天应用程序的用户列表中的用户获取了错误的 CSS 值。 (Jquery + 套接字)

html - 当按百分比设置 div 的宽度时,文本从 div 中出来

css - 为什么绝对定位元素嵌套在第一个 "row"相对 div 而不是其父 div?

java - 如何检查图像是否可见(Webdriver)