2017-04-05 66 views
0

我想知道jq的这种奇怪的反应。当我改变风格与我的功能一个元素 - 一切正常在循环中改变样式(JQ)

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

$(someVar).setStyle(); 

但是,当我使用循环来改变样式多元素,如

$(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