我是Java新手,我已经解决了这个问题几天了,我无法理解。 仪表返回NaN结果,并在开发控制台中显示以下错误:
:DOMException:无法在'Element'上执行'querySelectorAll':',:x'不是有效的选择器。 at Error(native)at htttp ... cantposthttp ... ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js:5:28399 代码:12 消息:“无法在'元素'上执行'querySelectorAll':',:x'不是有效的选择器。” 名称:“SyntaxError” stack:“错误:无法在'Element'上执行'querySelectorAll':'*,:x'不是有效的选择器。在错误(原生)↵在https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js:5:28399” proto :DOMException e:(e) t:div 这个:窗口
守则:
<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js'></script>
<script type='text/javascript' src='https://www.google.com/jsapi'></script>
<script type='text/javascript'>
// set your channel id here
var channel_id = xxxxx;
// set your channel's read api key here if necessary
var api_key = 'xxxxxxx';
// maximum value for the gauge
//var max_gauge_value = 13;
// name of the gauge
var gauge_name = 'VPD';
// global variables
var chart, charts, data;
// load the google gauge visualization
google.load('visualization', '1', {packages:['gauge']});
google.setOnLoadCallback(initChart);
// display the data
function displayData(point) {
data.setValue(0, 0, gauge_name);
data.setValue(0, 1, point);
chart.draw(data, options);
}
// load the data
function loadData() {
// variable for the data point
// get the data from thingspeak
$.getJSON('https://api.thingspeak.com/channels/' + channel_id + '/feed/last.json?api_key=' + api_key, function(data) {
// get the data point
var t = data.field1;
var h = data.field2;
function myFunction(a) {
return (a * 7.5)/(237.5 + a);
}
// if there is a data point display it
if (t) {
t = myFunction(t);
displayData(t);
}
});
}
// initialize the chart
function initChart() {
data = new google.visualization.DataTable();
data.addColumn('string', 'Label');
data.addColumn('number', 'Value');
data.addRows(1);
chart = new google.visualization.Gauge(document.getElementById('gauge_div'));
options = {width: 240, height: 240, majorTicks:["0","0.5","1","1.5","2","2.5","3","3.5","4"], max: 13, redFrom: 1.4, redTo: 13, yellowFrom:1, yellowTo:1.4, minorTicks: 5};
loadData();
// load new data every 15 seconds
setInterval('loadData()', 15000);
}
</script>
感谢您的帮助!
马捷
答案 0 :(得分:2)
错误消息
... / jquery / 1.9.1 / jquery.min.js:5:28399代码:12消息:“无法在'Element'上执行'querySelectorAll':',:x'不是有效的选择器。 “
是一只红鲱鱼。它来自jQuery代码中的错误。
我注意到了同样的消息,我在网上搜索了它。人们在各种不同的背景下抱怨它。
在我的情况下,我解决了实际问题,而这个jQuery bug仍然存在。
答案 1 :(得分:0)
检查您是否正确设置了变量channel_id,如果它的任何部分不是需要引号的数字(因为它是一个字符串)。
答案 2 :(得分:0)
好的我解决了这个问题,那就是数据记录器以字符串形式发送数据而不是数字,所以我将字符串转换为整数,现在它就可以了。
我改变了这个:
// get the data point
var t = data.field1;
var h = data.field2;
到此:
// get the data point
var t = +(data.field1);
var h = +(data.field2);