jquery添加css声明?

时间:2011-07-27 18:28:37

标签: javascript jquery css hover

是否可以使用jquery添加新的样式声明?

例如,传递:

{ "body": { "font-size": "12px" }, "table": { "xyz": "123" } }

等等

到一个我不知道的函数,而不必选择这些元素并按照这样做:

$('body').css({"font-size": "12px"});
$('table').css({"xyz": "123"});

问题的第二部分,是否可以使用jquery为:hover伪类设置css,还是需要使用.hover()函数?如果可能的话,我只想要应用css而不必处理鼠标输入/输出功能。

$('#element').find('a.thumbnail:hover').css({'background-color': '#efefef' });

不起作用。

谢谢, 韦斯利

5 个答案:

答案 0 :(得分:6)

您可以通过document.stylesheets集合使用纯JavaScript更改样式表本身。点击此处:http://www.howtocreate.co.uk/tutorials/javascript/domstylesheets

您还可以使用jQuery插件jRule来完成相同的结果:http://flesler.blogspot.com/2007/11/jqueryrule.html

答案 1 :(得分:4)

回答第1部分:

你必须定义一个函数来做 - 尝试这样的事情:

function styleit(json)
{
    //loop through the json
    $.each(item, function(i, style){
      //apply styles
      $(i).css(styles);
    }
}

回答第2部分:

我会把css声明放在像这样的类中:

.active a.thumbnail:hover { background-color: #efefef; }

然后使用javascript在父元素的上下文中切换类

$('#element').addClass('active');

答案 2 :(得分:0)

对于第一部分,您正在向bodytable标记添加样式。

对于第二部分,此解决方案在使用.hover()时似乎是一个更简单的解决方案:

$('#element').hover(function() {
    $(this).css({'background-color': '#efefef' });
});

答案 3 :(得分:0)

试试这个:

$('a.thumbnail').hover(
    function(){
        $(this).css({'background-color':'#efefef'});
    },
    function(){
        $(this).css({'background-color':'normal-color'});
    }
);

示例:http://jsfiddle.net/jfhpg/1/

希望它有所帮助。

答案 4 :(得分:-1)

您必须通过仅选择dom元素来完成此操作。另外,为了设置悬停样式,您必须使用css设置样式或添加/删除类名。