2017-03-07 55 views
0

我相信这是一个非常简单的解决方案。我制作了这个javacript函数,用于测试div上是否存在某种CSS样式,然后绕另一个div移动。但是,它不起作用,我不知道为什么。有人可以告诉我为什么这个JavaScript函数不执行?

的JavaScript:

function sale() { 
    var style = document.getElementsByClassName("product-single__price--wrapper").getAttribute("style"); 
    if (style !="display: none;") { 
     document.getElementByClassName("product-single__description").style.marginTop = "70px !important"; 
    } 
} 
window.onload = sale; 
+4

*“有人可以告诉我为什么这个JavaScript函数不执行吗?”*你似乎没有在任何地方调用函数?但即使你做了'document.getElementById(“ProductPrice”)。style.margin-top = ...'是一个错误。如果包含“-',则无法使用点符号访问属性。 –

+1

因为没有'style.margin-top'这样的东西,除非你想从'style.margin'中减去一个名为'top'的变量。我想你想'.style.marginTop'。 –

+0

这个函数在任何时候都不检查CSS样式吗?如果不是我怎么能这样做呢? @FelixKling –

回答

1

我不会永远建议这样做,但如果你想调用该函数的时候,你需要把它与你想要得到毫秒的setInterval调用。

例子:

$(document).ready(function() { 
    setInterval(function() { 
     sale(); 
    }, 1000); 
}); 

OR

$(document).ready(function() { 
    setInterval(sale, 1000); 
}); 

这将调用每一秒。再次,可怕的可怕可怕的做法。但是,这将做你想要的。如果您希望更快地调用它,则相应地更改毫秒(1000毫秒= 1秒)。

+0

如果我将它包含在函数后面,它会一直运行它? –

+0

将它包含在'document.ready(function(){...});' – jdmdevdotnet

+1

或者只是'setInterval(sale,1000)'。不需要创建一个新的函数来调用一个函数。 –

相关问题