Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript不在从JavaScript加载创建HTML后添加类_Javascript_Html_Css - Fatal编程技术网

JavaScript不在从JavaScript加载创建HTML后添加类

JavaScript不在从JavaScript加载创建HTML后添加类,javascript,html,css,Javascript,Html,Css,我可以添加代码,但我认为没有必要。假设通过JavaScript生成的HTML代码是有效的(事实就是如此),为什么写得更远的JavaScript在该HTML中附加类却没有这样做 这是我的代码: let info = document.getElementById('info'); let week = document.getElementById('week'); /*Initializer Function*/ window.addEventListener('load',

我可以添加代码,但我认为没有必要。假设通过JavaScript生成的HTML代码是有效的(事实就是如此),为什么写得更远的JavaScript在该HTML中附加类却没有这样做

这是我的代码:

let info = document.getElementById('info');
let week = document.getElementById('week');

    /*Initializer Function*/
    window.addEventListener('load', () => {
        let long;
        let lat;
        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(position => {
                long = position.coords.longitude;
                lat = position.coords.latitude;

                const proxy = 'https://cors-anywhere.herokuapp.com/';
                const api = `${proxy}https://api.darksky.net/forecast/d571a1e2483b31605b94edaae84c647e/${lat},${long}`;

                let xhr = new XMLHttpRequest();
                xhr.onreadystatechange = function () {
                    if (this.readyState === 4 && this.status === 200) {
                        let obj = JSON.parse(this.responseText);
                        console.log(obj);
                        document.getElementById('temperature-degree').innerHTML = obj.currently.apparentTemperature;
                        document.getElementById('location').innerHTML = obj.timezone;
                        document.getElementById('temperature-description').innerHTML = obj.currently.summary;
                        setIcons(obj.currently.icon, document.getElementById('currentDayIcon'));
                        for (let i = 0; i < obj.hourly.data.length; i++) {
                            info.innerHTML += `<div id='hour${i + 1}' class='hourly'>` + `<canvas id='hourIcon${i + 1}'></canvas>` + `<h3 id='hourTemp${i + 1}'></h3>` + `<p id='hourSummary${i + 1}'></p>` + '</div>';
                            setIcons(obj.hourly.data[i].icon, document.getElementById(`hourIcon${i + 1}`));
                            document.getElementById(`hourTemp${i + 1}`).innerHTML = obj.hourly.data[i].temperature;
                            document.getElementById(`hourSummary${i + 1}`).innerHTML = obj.hourly.data[i].summary;
                        }
                        for (let i = 0; i < 5; i++) {
                            week.innerHTML += `<div id='day${i + 1}' class='daily'>` + `<canvas id='dayIcon${i + 1}'></canvas>` + `<h2 id='dayTemp${i + 1}'></h2>` + `<p id='daySummary${i + 1}'></p>` + '</div>';
                            setIcons(obj.daily.data[i].icon, document.getElementById(`dayIcon${i + 1}`));
                            document.getElementById(`dayTemp${i + 1}`).innerHTML = obj.daily.data[i].temperatureMax;
                            document.getElementById(`daySummary${i + 1}`).innerHTML = obj.daily.data[i].summary;
                        }
                    }
                };
                xhr.open("GET", api, true);
                xhr.send();
            });
        }
        function setIcons(icon, iconId) {
            const skycons = new Skycons({color: 'white'});
            const currentIcon = icon.replace(/-/g, '_').toUpperCase();
            skycons.play();
            return skycons.set(iconId, Skycons[currentIcon]);
        }
        ;

    });

for (let i = 1; i < 6; i++) {
    $(`#day${i}`).bind('mouseenter mouseleave', function () {
        $(this).toggleClass('easeIn');
        $(this).toggleClass('pointer');
        });
    };
let info=document.getElementById('info');
let week=document.getElementById('week');
/*初始化函数*/
window.addEventListener('load',()=>{
让我们继续;
让lat;
if(导航器.地理位置){
navigator.geolocation.getCurrentPosition(位置=>{
long=position.coords.longitude;
纬度=位置坐标纬度;
常量代理服务器https://cors-anywhere.herokuapp.com/';
常量api=`${proxy}https://api.darksky.net/forecast/d571a1e2483b31605b94edaae84c647e/${lat},${long}`;
设xhr=newXMLHttpRequest();
xhr.onreadystatechange=函数(){
if(this.readyState==4&&this.status==200){
让obj=JSON.parse(this.responseText);
控制台日志(obj);
document.getElementById('temperature-degree')。innerHTML=obj.current.apparentTemperature;
document.getElementById('location').innerHTML=obj.timezone;
document.getElementById('temperature-description').innerHTML=obj.current.summary;
setIcons(obj.current.icon、document.getElementById('currentDayIcon');
for(设i=0;i

`+'; setIcons(obj.hourly.data[i].icon,document.getElementById(`hourIcon${i+1}`)); document.getElementById(`hourTemp${i+1}`)。innerHTML=obj.hourly.data[i]。温度; document.getElementById(`hourSummary${i+1}`)。innerHTML=obj.hourly.data[i]。摘要; } for(设i=0;i<5;i++){ week.innerHTML++=`++`++`

`+'; setIcons(obj.daily.data[i].icon,document.getElementById(`dayIcon${i+1}`)); document.getElementById(`dayTemp${i+1}`)。innerHTML=obj.daily.data[i]。temperatureMax; document.getElementById(`DaySummmary${i+1}`)。innerHTML=obj.daily.data[i]。摘要; } } }; xhr.open(“GET”,api,true); xhr.send(); }); } 功能设置图标(图标,图标标识){ const skycons=新的skycons({color:'white'}); const currentIcon=icon.replace(/-/g,'.''.').toUpperCase(); 天敌。play(); 返回skycons.set(iconId,skycons[currentIcon]); } ; }); for(设i=1;i<6;i++){ $(`day${i}').bind('mouseenter mouseleave',function(){ $(this.toggleClass('easeIn'); $(this.toggleClass('pointer'); }); };

…正如您所看到的,last for循环旨在通过jQuery将侦听器附加到AJAX调用中创建的day div中,但它们没有得到应用,尽管我使AJAX调用同步,迫使脚本的其余部分等待完成。出什么问题了?

解决了问题(与范围有关)。将jQuery函数添加到AJAX调用中可以在创建时添加所有内容。

始终,始终添加代码-越多越好。添加代码以供参考。