setInverval不使用jQuery属性选择

setInverval不使用jQuery属性选择,jquery,setinterval,Jquery,Setinterval,如果我将数据记录到控制台,那么这段代码可以正常工作,但是由于某种原因jQuery选择器无法工作,尽管它在不在setInterval中时可以工作 var refreshId = setInterval(function() { if ($('body').width()<=979) { console.log('small'); $('.switch-type').attr('data-type', 'vertical'

如果我将数据记录到控制台,那么这段代码可以正常工作,但是由于某种原因jQuery选择器无法工作,尽管它在不在setInterval中时可以工作

    var refreshId = setInterval(function() {
        if ($('body').width()<=979) {
            console.log('small');
            $('.switch-type').attr('data-type', 'vertical');
        } else {
            $('.switch-type').attr('data-type', 'horizonal');
            console.log('big');
        }
    }, 1000);
var refreshId=setInterval(函数(){

如果($('body').width()您可以尝试登录到控制台

console.log($('.switch-type'));

这样,当您试图访问DOM元素时,您就知道它是否存在。我最近遇到了这样的问题,然后我意识到当我试图使用它时,该元素不在DOM中。

您需要发布标记(HTML)如果您需要有关选择器的帮助。另外,您如何知道它不起作用?请确保您已在
$(文档)中获得该帮助。就绪(function(){…})
此处工作正常:此处看起来工作正常:。您可以调整结果面板的大小,以查看
类型的颜色变化。