如何使用 jQuery 更改 CSS?

IT技术 javascript jquery css
2021-02-02 01:48:01

我正在尝试使用 jQuery 更改 CSS:

$(init);
    
function init() {
    $("h1").css("backgroundColor", "yellow");
    $("#myParagraph").css({"backgroundColor":"black","color":"white");
    $(".bordered").css("border", "1px solid black");
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div class="bordered">
    <h1>Header</h1>
    <p id="myParagraph">This is some paragraph text</p>
</div>

我在这里错过了什么?

6个回答

忽略那些暗示属性名称是问题的人。jQuery API 文档明确指出任何一种表示法都是可以接受的:http : //api.jquery.com/css/

实际问题是您在此行上缺少一个右花括号:

$("#myParagraph").css({"backgroundColor":"black","color":"white");

改成这样:

$("#myParagraph").css({"backgroundColor": "black", "color": "white"});

这是一个工作演示:http : //jsfiddle.net/YPYz8/

$(init);
    
function init() {
    $("h1").css("backgroundColor", "yellow");
    $("#myParagraph").css({ "backgroundColor": "black", "color": "white" });
    $(".bordered").css("border", "1px solid black");
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div class="bordered">
    <h1>Header</h1>
    <p id="myParagraph">This is some paragraph text</p>
</div>

@Ender:使用css()所有 css 都被重置,只有这个函数中提到的 css 仍然存在。如何只添加要更改的 css 并保留以前的 css?
2021-03-22 01:48:01
您如何将值添加为变量,例如paddingTop作为x像素数?我尝试过的每种语法都会导致错误。
2021-03-30 01:48:01
没关系。知道了:$("#main").css({paddingTop: (var_name+20) + "px"});
2021-04-08 01:48:01

您可以执行以下任一操作:

$("h1").css("background-color", "yellow");

或者:

$("h1").css({backgroundColor: "yellow"});
{"backgroundColor": "yellow"} 是有效的,虽然是多余的。
2021-03-23 01:48:01
@user449914:您不需要在对象文字中的属性名称周围加上引号 -{foo: "bar"}{"foo": "bar"}.
2021-04-09 01:48:01

澄清一下,因为一些答案提供了不正确的信息:


jQuery .css()方法允许在许多情况下使用 DOM 或 CSS 表示法。所以,无论是backgroundColorbackground-color将完成这项工作。

此外,当您.css()使用参数调用时,您有两种选择可以选择参数。它们可以是表示 css 属性及其值的 2 个逗号分隔的字符串,也可以是包含一个或多个 CSS 属性和值的键值对的 Javascript 对象。

总之,您的代码唯一的错误是缺少}. 该行应为:

$("#myParagraph").css({"backgroundColor":"black","color":"white"});

你不能去掉大括号,但你可以去掉周围backgroundColor的引号color如果使用background-color连字符,则必须在其周围加上引号。

一般来说,引用您的 Javascript 对象是一个好习惯,因为如果您不引用现有的关键字,就会出现问题


最后一点是关于 jQuery .ready()方法

$(handler);

同义词

$(document).ready(handler);

以及第三种不推荐的形式。

这意味着这$(init)是完全正确的,因为init是该实例中的处理程序。因此,init在构建 DOM 时会被触发。

当您在 jQuery 中使用 Multiple css 属性时,您必须在开始和结束时使用花括号。您缺少结尾的花括号。

function init() {
 $("h1").css("backgroundColor", "yellow");

 $("#myParagraph").css({"background-color":"black","color":"white"});

 $(".bordered").css("border", "1px solid black");
}

你可以看看这个jQuery CSS Selector 教程

.css()方法使查找和设置 CSS 属性变得非常简单,并结合其他方法,如 .animate(),您可以在您的网站上制作一些很酷的效果。

在最简单的形式中,该.css()方法可以为一组特定的匹配元素设置单个 CSS 属性。您只需将属性和值作为字符串传递,元素的 CSS 属性就会更改。

$('.example').css('background-color', 'red');

对于具有“example”类的任何元素,这会将“background-color”属性设置为“red”。

但您并不仅限于一次只更改一个属性。当然,您可以添加一堆相同的 jQuery 对象,每个对象一次只更改一个属性,但这会导致多次不必要的 DOM 调用,并且是大量重复代码。

相反,您可以将.css()包含属性和值作为键/值对的 Javascript 对象传递给该方法。这样,每个属性都将一次设置在 jQuery 对象上。

$('.example').css({
    'background-color': 'red',
    'border' : '1px solid red',
    'color' : 'white',
    'font-size': '32px',
    'text-align' : 'center',
    'display' : 'inline-block'
});

这将更改 '.example' 元素上的所有这些 CSS 属性。