Adding jQuery actually breaks the whole function haha. I was trying to avoid jQuery because I'm so close without it (plus it's just more stuff I've never worked with).
And again, the function works perfectly fine if I load it into the browser myself after the page loads. I don't think it's the function, I think it's the timing of it being loaded. If you want to see what I mean, here is my page: http://108.40.120.73:28926/weewx/index.html You can see the undefined error in the console, but if you re-load the function into the console yourself after the page loads, you'll see it works fine. It updates Wind in the Current Conditions window. function get_realtime() { > tbl = $('.widget_contents', $('current_widget')); > r4 = tbl.getElementsByTagName("tr")[4]; > r4d1 = r4.getElementsByTagName("td")[1]; > var xhttp = new XMLHttpRequest(); > xhttp.onreadystatechange = function() { > if (this.readyState == 4 && this.status == 200) { > rt = this.responseText.split(" ") > if (rt[6] && rt[13] && rt[11]) { > rt = this.responseText.split(" ") > rtstr = rt[6].split(".")[0]+" "+rt[13]+" "+rt[11]; > if ((parseInt(rt[6], 10) < 10)) { > r4d1.innerHTML = rtstr; > } > else if ((parseInt(rt[6], 10) >= 20)) { > r4d1.innerHTML = rtstr.fontcolor("red"); > } > else { > r4d1.innerHTML = rtstr.fontcolor("green"); > } > } > } > }; > xhttp.open("GET", "realtime.txt", true); > xhttp.send(); > } > On Tuesday, December 3, 2019 at 10:25:50 AM UTC-5, Pat wrote: > > $ is a shortcut for the word jQuery. Make sure you have the jquery library > loaded in the header, or just replace $ with the word jQuery > > > On Tuesday, December 3, 2019 at 10:04:09 AM UTC-5, Jared wrote: >> >> Hi, >> >> I made a little JavaScript function (wind.js) that will update the >> Seasons *current_widget* table with wind values from CRT realtime.txt. >> The function works perfectly fine if I drop it into the browser console >> after the page loads, but for the life of me I cannot get this thing loaded >> by itself. The console always shows the error *$ is not defined* in >> wind.js. The errant line is *tbl = $('.widget_contents', >> $('current_widget'));* where I am grabbing the table object. >> >> The index.html.tmpl <body> sections runs the setup(); function "onload" >> from the seasons.js file, which looks like it establishes the widgets. If >> I drop <script src="wind.js"></script> after </body>, why are the widget >> objects still undefined? I've tried various methods of deferring this >> script from being run, but nothing is working. >> >> This is literally the first thing I've ever created in JavaScript and am >> a complete newbie in working with web programming, so go easy on me :) >> > -- You received this message because you are subscribed to the Google Groups "weewx-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/1b4daa97-7f38-4610-bc0e-914899fae354%40googlegroups.com.
