-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 に投げました。コードはこちらにあります。願わくば、これが Web ゲージのデータ ソースとして Google スプレッドシートを使用したいと考えている他の人の助けになることを願っています。

4

3 に答える 3

5

このgetElementByIdメソッドは、文字列ではなく、DOM オブジェクトへの参照を返します。

しかし、それはあなたの問題ではないと思います。=<比較で、存在しない演算子を使用しようとしています。

また、コード内で紛らわしいことを行っています。文字列red22yellow22およびを作成し、そのうちの 1 つを、ここでは定義していないgreen22からの値に置き換えます。m1次にinnerHTML、 id を持つ要素からを取得してm1いますが、何もしません。どうにかして文字列と要素を一緒に使いたいと思っているようですが、それでは逆にやってしまいます。

于 2013-03-03T22:53:20.390 に答える
0

いいえ(ドキュメント)、DOM要素を返すかnull、そのIDに何も存在しない場合。

.innerHTMLただし、文字列を返す呼び出しを行っています。それがあなたの問題の原因ですか?

于 2013-03-03T22:46:32.930 に答える
0

このメソッドは文字列ではなくdocument.getElementById()DOMElementを返します。

上記のリンクをクリックすると、W3C 勧告が表示されます。

これについて MDN が述べなければならないことは次のとおり です

基本的に、ブラウザ自体によって定義された、基礎となるネイティブ DOM オブジェクトを取得します。その「ネイティブ DOM オブジェクト」が何を行い、どのインターフェースを実装するかはケースバイケースであり、たとえば W3C や MDN で調べる必要があります。

于 2013-03-03T22:48:21.663 に答える