2011-10-30 1 views
0

以下の動的スタイルの変更を試行しますが、関数は無音になります。私はJSHintを使いました。動的スタイルの変更方法が失敗する

function styleInput(elClass,color) 
{ 
    "use strict"; 

    var document; 
    elClass = document.getElementsByClassName(elClass); 



var len = elClass.length; 

    for (var i=0; i < len;i++) { 

     if (elClass[i].className === elClass) 


       { 

        var tmp = elClass[i]; 


        tmp.style.backgroundColor = color; 

        tmp = " "; 





       } 

     } 




} 

styleInput("fm_bushido", "#f3f3f3"); 

----- ----- HTML

<!DOCTYPE html> 
<html> 
<head> 
<meta charset=utf-8 /> 
<title>JS Bin</title> 
<!--[if IE]> 
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> 
<![endif]--> 
<style> 
    article, aside, figure, footer, header, hgroup, 
    menu, nav, section { display: block; } 
</style> 
</head> 
<body> 
    <input type="text" name="name" class="fm_bushido txt" placeholder="Name:"></input> 
</body> 
</html> 

答えて

0

あなたは二回変数elClassを使用して、それがdocument.getElementsByClassName(elClass);から返されると、関数に渡された値を上書きしています。スクリプトがif (elClass[i].className === elClass)になったら、要素のクラス名を要素自体と比較します。ではなく、に渡した値(fm_bushido)です。

これらの要素の名前の1つを変更するだけで動作するはずです。

+0

ありがとう、フォームを動的に作成するためのFormClassを起動してください。一意ではなく、単にOOPコードの例です。クラス名を "classname classname"形式で渡すことについてお勧めしますか?スペースの前後にあるものを取得する? – Wasabi

+0

可能であれば、[jQuery](http://jquery.com/)を使用してください。これにより、 – Clive