Javascript 如何更改DOM元素的样式
有这样一个简单的html:Javascript 如何更改DOM元素的样式,javascript,Javascript,有这样一个简单的html: <div id="btc"></div> 和一些.js代码,如下所示: setInterval(function () { var HttpClient = function () { this.get = function (aUrl, aCallback) { var anHttpRequest = new XMLHttpRequest(); anHttpReques
<div id="btc"></div>
和一些.js代码,如下所示:
setInterval(function () {
var HttpClient = function () {
this.get = function (aUrl, aCallback) {
var anHttpRequest = new XMLHttpRequest();
anHttpRequest.onreadystatechange = function () {
if (anHttpRequest.readyState == 4 && anHttpRequest.status == 200)
aCallback(anHttpRequest.responseText);
}
anHttpRequest.open("GET", aUrl, true);
anHttpRequest.send(null);
}
}
var price = 1;
var client = new HttpClient();
client.get('https://blockchain.info/ru/ticker', function (response) {
var fields = ['last'];
var data = JSON.parse(response);
var out = [];
for (var i in data) {
var d = [];
for (var j in fields)
d.push(data[i][fields[j]]);
out.push(d);
}
console.log(out[0]);
if (out[0] > price) {
console.log('more');
document.getElementById('btc').innerHTML = out[0];
document.getElementById('btc').style.color = "green";
}
price = out[0];
if (out[0] < price) {
console.log('less');
price = out[0];
document.getElementById('btc').innerHTML = out[0];
document.getElementById('btc').style.color = "red";
}
});
}, 1000)
这个想法是用红色或绿色标记价格,以防价格下跌或上涨。
到目前为止,它只适用于上升秒,如果从来没有工作。
我做错了什么,如何纠正 您正在使用代码
price = out[0];
if (out[0] < price) {
您应该删除行price=out[0];在setInterval函数之前移动var price=1
下面是正确的代码:
var price = 1;
setInterval(function () {
var HttpClient = function () {
this.get = function (aUrl, aCallback) {
var anHttpRequest = new XMLHttpRequest();
anHttpRequest.onreadystatechange = function () {
if (anHttpRequest.readyState == 4 && anHttpRequest.status == 200)
aCallback(anHttpRequest.responseText);
}
anHttpRequest.open("GET", aUrl, true);
anHttpRequest.send(null);
}
}
var client = new HttpClient();
client.get('https://blockchain.info/ru/ticker', function (response) {
var fields = ['last'];
var data = JSON.parse(response);
var out = [];
for (var i in data) {
var d = [];
for (var j in fields)
d.push(data[i][fields[j]]);
out.push(d);
}
console.log(price)
if (out[0] > price) {
console.log('more');
price = out[0];
document.getElementById('btc').innerHTML = out[0];
document.getElementById('btc').style.color = "green";
}
else if (out[0] < price) {
console.log('less');
price = out[0];
document.getElementById('btc').innerHTML = out[0];
document.getElementById('btc').style.color = "red";
}
});
}, 1000);
为什么不使用其他工具?@NoushadPP因为我需要以某种方式重新声明价格变量,我不知道如何;问题是,正如我猜的那样,var price=1意味着我需要在已经进行的过程中重新分配一些值……如果您有price=out[0];在if out[0]之前
var price = 1;
setInterval(function () {
var HttpClient = function () {
this.get = function (aUrl, aCallback) {
var anHttpRequest = new XMLHttpRequest();
anHttpRequest.onreadystatechange = function () {
if (anHttpRequest.readyState == 4 && anHttpRequest.status == 200)
aCallback(anHttpRequest.responseText);
}
anHttpRequest.open("GET", aUrl, true);
anHttpRequest.send(null);
}
}
var client = new HttpClient();
client.get('https://blockchain.info/ru/ticker', function (response) {
var fields = ['last'];
var data = JSON.parse(response);
var out = [];
for (var i in data) {
var d = [];
for (var j in fields)
d.push(data[i][fields[j]]);
out.push(d);
}
console.log(price)
if (out[0] > price) {
console.log('more');
price = out[0];
document.getElementById('btc').innerHTML = out[0];
document.getElementById('btc').style.color = "green";
}
else if (out[0] < price) {
console.log('less');
price = out[0];
document.getElementById('btc').innerHTML = out[0];
document.getElementById('btc').style.color = "red";
}
});
}, 1000);