-3

有人可以告诉我 document.getElementById 是否将元素作为字符串获取?我正在用它创建一个变量,然后尝试将它与某些范围进行比较,但它不起作用。

google.setOnLoadCallback(queryValue3);
function queryValue3 () {
var query3 = new google.visualization.Query('https://spreadsheets.google.com/spreadsheet/tq?range=B2:B17&key=0Ai_2YLvaQba0dFlQQnU2ZWV1SFp2QUZMcHVfcnVQcFE&gid=10');
query3.send(function (response) {
    if (response.isError()) {
        alert('Error in query3: ' + response.getMessage() + ' ' + response.getDetailedMessage());
        return;
    }
var data3 = response.getDataTable();
var m1 = data3.getValue(0, 0);
var red22 = "<span style='color:#ff0000'>" + a22 + "</span>";
var yellow22 = "<span style='color:#FF9900'>" + a22 + "</span>";
var green22 = "<span style='color:#009900'>" + a22 + "</span>";
if (m1 <= 70)
{
m1 = green22;
}
else if (71 === m1 && m1 <= 89)
{
m1 = yellow22;
}
else if (m1 >=90)
{
m1 = red22;
}
console.log ("m1= " +m1)
document.getElementById('m1').innerHTML = m1;
console.log ("m1= "+m1)
});
}

谢谢...

编辑 2014 年 3 月 24 日 - 在这篇文章中的交流之后不久,我得到了这个东西来处理 16 个指标。上周我把它扔到了 GitHub 上。您将在此处找到代码。希望这将有助于其他想要使用 Google 电子表格作为网络仪表数据源的人。

4

3 回答 3

5

getElementById方法返回对 DOM 对象的引用,而不是字符串。

但是,我不认为这是你的问题。在比较中,您尝试使用=<不存在的运算符。

此外,您在代码中做了一些令人困惑的事情。您正在创建字符串red22,yellow22green22,然后将其中一个替换为m1您未在此处定义的值 from 。然后你innerHTML从一个带有 id 的元素中获取m1,但你不使用它做任何事情。似乎您想以某种方式将字符串和元素一起使用,但随后您将全部倒退。

于 2013-03-03T22:53:20.390 回答
0

不,它没有(文档),它将返回DOM 元素,或者null如果该 ID 不存在任何内容。

但是,您正在调用.innerHTMLwhich 返回一个字符串。这是你问题的根源吗?

于 2013-03-03T22:46:32.930 回答
0

该方法document.getElementById()返回一个 DOM Element,而不是一个字符串。

单击上面的链接,它们会将您带到 W3C 推荐标准。

这是 MDN 必须说的: https://developer.mozilla.org/en-US/docs/DOM/document.getElementById https://developer.mozilla.org/en-US/docs/DOM/element

基本上你会得到一个由浏览器本身定义的底层原生 DOM 对象。'native DOM Object' 的作用以及它实现的接口取决于具体情况,并且必须在例如 W3C 或 MDN 中查找。

于 2013-03-03T22:48:21.663 回答