2017-03-07 10 views
0

これは非常に簡単な解決策だと確信しています。私はdivに特定のCSSスタイルがあるかどうかをテストし、別のdivを移動するjavacript関数を作成しました。しかし、それは動作しません、なぜ私は分かりません。誰かがこの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)'に含めます。関数を呼び出すだけで新しい関数を作成する必要はありません。 –

関連する問題