2017-04-05 6 views
0

私はjqのこの奇妙な反応について疑問に思います。すべてのループ(JQ)のスタイルを変更する

$.fn.setStyle = function(){ 
$(this).css('marginLeft','100px'); 
} 

$(someVar).setStyle(); 

okですが、私は

$(myHTMLcollection).each(function(index,el){ 
        $(el).setStyle(); 
       }); 

何も起こらないような複数の要素のスタイルを変更するためにループを使用して、私のためであればてるとき - 私は私の機能を備えた一つの要素のスタイルを変更した場合例console.log($(this))私の関数の最後に、私はこれらの要素がコンソールで新しいスタイルを持っていることを知っていますが、ページ上には何も変わっていません。

答えて

2

あなたのコードは、スタイルが上書きされていないか確認してください。

$.fn.setStyle = function(){ 
 
$(this).css('color','#f00'); 
 
} 
 
$('.test').each(function(index, el) { 
 
    $(el).setStyle(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p class='test'>test 1</p> 
 
<p class='test'>test 2</p> 
 
<p class='test'>test 3</p> 
 
<p class='test'>test 4</p>

+1

多分他のコードがうまくいかない...どのような場合にあなたに感謝 – ddeadlink

関連する問題