迭代加载的HTML文件元素JQuery

时间:2018-04-11 14:06:43

标签: javascript jquery html css

我目前正在开发一个网站。使用JQuery中的.load()函数将标头加载到主“搜索”页面中。但是,当我尝试遍历页面中的[href]时,它无法找到它们,因为尚未将已加载的标题链接添加到DOM(可能)。

module.exports.handler = (event, context, callback) => {
    let data = multipart.parse(event, false);

    fs.writeFile('meme.webm', data.file.content, 'binary', function(err) {
        if(err) { 
          console.log(err);
        } else {  
          console.log('saved!');
        }
    }); 

    // etc ...
};

这是我写的一个函数,用于向当前页面添加一个css类,但是这个循环不起作用,因为它无法在DOM上找到它们(.navLinks类被添加到加载的header.html文件中的所有链接) )。谢谢你的帮助!

function getCurrentPage(){
        var count = 0;
        $(".navLinks").each(function() {
            count+=1
            console.log('this.href' + this.href)
            console.log('windowloc' + window.location.href)
            if (this.href == window.location.href) {
                $(this).addClass("active");
            }
        });
        console.log('# of hrefs' + count)
    }

这是在主搜索页面上添加并附加到ID为'header'的div的'header.html'文件。

1 个答案:

答案 0 :(得分:0)

你猜对了,

  

它无法找到它们,因为尚未将已加载的标题链接添加到DOM

.load()是异步的,并且有一个在完成后执行的回调,那就是你应该调用你的函数的地方:

$('#someDiv').load('someHtml.html', getCurrentPage);

请注意,您必须通过引用(不是())传递函数,否则它将在load()完成之前执行。