在 .each() 中使用带参数的函数
Use function with arguments within .each()
我想对参数中的不同列表使用单个函数。
像这样的语句 $( ".animals li" ).each(color);
有效。
但是,当我尝试传递参数时,即使为空,也不起作用 $( ".animals li" ).each(color());
在我的例子中,我想获得函数,它改变奇数元素的颜色(颜色不同)。
有什么办法吗?
<ul class="animals">
<li>cat</li>
<li>hamster</li>
<li>dog</li>
<li>racoon</li>
<li>rat</li>
</ul>
<ul class="plant">
<li>pine</li>
<li>oak</li>
<li>fir</li>
<li>birch</li>
<li>palm </li>
</ul>
$( document ).ready(function(){
$( ".animals li" ).each(color(ind, el, "green"));
$( ".plant li" ).each(color(ind, el, "red"));
function color( index, element, text_color ) {
if( index % 2 != 0 ) {
$( this ).css( "color", text_color );
}
}
});
你不能这样传递参数。您需要像这样传递它:
$( ".animals li" ).each((ind, el) => color(ind, el, "green"));
那就行了。但是,您需要修复颜色函数以不使用 'this':
function color( index, element, text_color ) {
if( index % 2 != 0 ) {
$( element ).css( "color", text_color );
}
}
我想对参数中的不同列表使用单个函数。
像这样的语句 $( ".animals li" ).each(color);
有效。
但是,当我尝试传递参数时,即使为空,也不起作用 $( ".animals li" ).each(color());
在我的例子中,我想获得函数,它改变奇数元素的颜色(颜色不同)。 有什么办法吗?
<ul class="animals">
<li>cat</li>
<li>hamster</li>
<li>dog</li>
<li>racoon</li>
<li>rat</li>
</ul>
<ul class="plant">
<li>pine</li>
<li>oak</li>
<li>fir</li>
<li>birch</li>
<li>palm </li>
</ul>
$( document ).ready(function(){
$( ".animals li" ).each(color(ind, el, "green"));
$( ".plant li" ).each(color(ind, el, "red"));
function color( index, element, text_color ) {
if( index % 2 != 0 ) {
$( this ).css( "color", text_color );
}
}
});
你不能这样传递参数。您需要像这样传递它:
$( ".animals li" ).each((ind, el) => color(ind, el, "green"));
那就行了。但是,您需要修复颜色函数以不使用 'this':
function color( index, element, text_color ) {
if( index % 2 != 0 ) {
$( element ).css( "color", text_color );
}
}