document.getElementById是作为字符串提取的吗?

时间:2013-03-03 22:45:53

标签: javascript string innerhtml

有人可以告诉我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上。你会找到code here。希望这将有助于其他人想要使用Google Spreadsheets作为网络计量器的数据源。

3 个答案:

答案 0 :(得分:5)

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

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

此外,您在代码中做了一些令人困惑的事情。您正在创建字符串red22yellow22green22,然后使用m1中的值替换其中一个,此处未定义。然后,您将从ID为innerHTML的元素中获取m1,但您不会对其执行任何操作。看起来你想以某种方式将字符串和元素一起使用,但是然后你就完全倒退了。

答案 1 :(得分:0)

不是(documentation),如果该ID不存在,它将返回DOM elementnull

但是你要调用.innerHTML来返回一个字符串。这是你问题的根源吗?

答案 2 :(得分: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对象。 “本机DOM对象”的作用以及它实现的接口取决于具体情况,必须在W3C或MDN中查找。