我想用相同的选择器,每次使用jQuery,不同的值多次添加相同的CSS属性。如何使用jQuery为同一元素中的相同CSS属性添加不同的值?
$('.element').css({
'cursor':'-moz-grab',
'cursor':'-webkit-grab',
'cursor':'move'
});
我该怎么做,而不是每次都覆盖相同的css属性?
我想用相同的选择器,每次使用jQuery,不同的值多次添加相同的CSS属性。如何使用jQuery为同一元素中的相同CSS属性添加不同的值?
$('.element').css({
'cursor':'-moz-grab',
'cursor':'-webkit-grab',
'cursor':'move'
});
我该怎么做,而不是每次都覆盖相同的css属性?
根据您的问题
$('.element').attr("style", "cursor:moz-grab; cursor:-webkit-grab; cursor:move;");
Or
$('.element').css({"cursor":"moz-grab","cursor":"-webkit-grab" ,"cursor":"move" })
Or
.addclass{
cursor:-moz-grab;
cursor:-webkit-grab;
cursor:move;
}
,然后添加使用addClass
但是,请注意,这将删除任何已存在的内联样式,包括以前使用'$ .css'添加的任何内容。 – pawel 2014-10-10 12:13:16
同样的答案,几秒钟后:) – 2014-10-10 12:13:46
第一个选项删除当前元素的所有样式。 第二个选项只包含最后一个“游标”属性。 第三个选项不允许任何动态的CSS,除非你用JavaScript内联CSS。 – 2015-09-02 08:48:53
您可以修改样式属性的类。
$('.element').attr("style", "cursor:-moz-grab;cursor:-webkit-grab;cursor:move");
对于其他人要注意的是,这将删除任何已存在的内联样式,包括以前使用'$ .css'添加的任何内容 – Crimbo 2014-10-13 02:02:39
$('.element').each(function() {
var eleStyle = "";
if($(this).attr('style')) eleStyle = $(this).attr('style');
$(this).attr(
'style', eleStyle + 'cursor:-moz-grab; cursor:-webkit-grab; cursor:move;'
);
});
我对$(this).attr('style')'未定义,我猜是因为有没有样式的元素,因为它的立场。你也有一个奇怪的花括号 - 我不能编辑你的答案,因为它只是一个字符的错字 – Crimbo 2014-10-10 15:11:50
我编辑了答案,似乎工作,即保持已存在的元素样式完好 – Crimbo 2014-10-10 15:23:56
这是一个不必要的详细和过度复杂的方式实现['.css()'](http://api.jquery.com/css/#css-properties)免费提供给你的功能 - 如果你没有省略,将会变得更加冗长和过于复杂正确处理元素尚未具有'style'属性的原因。 – 2014-10-11 20:23:20
添加到您的CSS一类具有所需的规则。
.addclass{
cursor:-moz-grab;
cursor:-webkit-grab;
cursor:move;
}
,然后这个类添加到您的元素
$('.element').addClass('addclass');
是的,这是更清洁的方式,但我仍然有兴趣知道在这种情况下值是否总是动态变化 – Crimbo 2015-12-02 10:54:17
这为我工作,我不得不根据用户输入动态添加CSS。
在你的情况下,这是没有必要的,因为你有一个非常明确的CSS,它只是添加游标,所以添加一个类将是一个更好的选择。
在需要添加的情况下,像我一样动态改变用户选择的颜色,可以使用下面的代码。您必须为每个元素执行此操作,因此您可以逐个提取每个元素样式,否则$ elm.attr(“style”)将返回第一个元素样式或未定义,不确定,除非您只有一个元素带类“元素”
$('.element').each(function(idx, elm) {
var $elm = $(elm);
// This will add standard CSS
$elm.css({ 'cursor':'move'});
// This will add fallbacks
$elm.attr("style", $elm.attr("style") + ";cursor:-moz-grab;cursor:-webkit-grab");
});
问题是,您是否必须使用该回退功能,以便可以使用不同的CSS属性值? – Crimbo 2015-12-02 11:06:38
是的,因为jQuery.css({cursor:“move”})实际上删除了任何其他的“游标”属性,包括回退,这也是它实际工作的原因。 – 2015-12-03 18:47:06
添加一个CSS类,这将是更清洁和更好的方法。 – Satpal 2014-10-10 12:10:48
是的,谢谢,但我仍然有兴趣知道它是否有可能在值总是动态变化的情况下 – Crimbo 2015-12-02 10:52:07