2013-11-02 64 views
3

我有一个函数,我希望我传递的选择器可以执行附带的过程。的功能在下面列出:选择器传递给jQuery函数

function menuselector (id){ 
    $(id).css('background', 'url(../img/black_denim.png) repeat'); 
    $(id).css('color', '#FFF'); 

} 
function menudeselector (id){ 
    $(id).css('background', 'none'); 
    $(id).css('color', '#CE0101'); 

} 

menuselector('mgi'); 

mgidiv标签

+1

可以传递一个目的是['CSS()'](http://api.jquery.com/css/): ''css({'background':'url(../ img/black_denim.png)repeat','color':'#fff'});'或者你可以将两者连接在一起(并且只选择一次):' .css('background','url(...)repeat').css('color','#fff');'如果你需要多次使用相同的元素, ,将其作为变量存储,从而节省查找相关元素所需的时间。 –

回答

6

的ID ID由ID,同为在CSS之前使用散列的目标。

如果你传递

menuselector('mgi'); 

您需要进行调整,使之成为有效的选择。

$('#' + id).css(... 

,或者您可以发送有效选择

menuselector('#mgi'); 

假设你有具有该ID的元件(你没有表明)

<div id="mgi"> 

除了

你不应该继续选择元素。您可以链

$(id).css('background', 'none').css('color', '#CE0101'); 

// on new lines for readability if there are a lot of actions 
$(id).css('background', 'none') 
    .css('color', '#CE0101'); 

或使用对象

$(id).css({background: 'none', color: '#CE0101'}); 
1

mgi不是一个有效的选择。你应该写:这取决于你是否要选择一个ID或类

menusector('#mgi'); 

menuselector('.mgi'); 

如果你的函数只适用于ID,你可以使用popnoodle的解决方案,尽管这样做的限制看起来不太一般。

1

只是传递 '#mgi' 如果它是一个ID:

menuselector('#mgi');