gpt4 book ai didi

jquery - addClass 方法不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 09:36:31 24 4
gpt4 key购买 nike

我正在自学 jquery。我第一次尝试使用 jquery 更改 dom 的元素。特别是我正在尝试使用方法 addClass 使蓝色矩形消失。这是简单的代码:

html

<!DOCTYPE html>
<html>
<head>
<title>test slider</title>

<link rel="stylesheet" type="text/css" href="styles.css">

<script type="text/javascript" src="jquery.js"></script>

<script type="text/javascript" src="script.js"></script>


</head>

<body>

<span id="rect"></span>

<p id="button"> click here </p>

</body>

</html>

CSS

#rect{

float: left;
height: 400px;
width: 550px;
background-color: blue;
}

.closed {
height: 0;
}

#button {
float: right;
margin-top: 200px;
margin-right: 500px;
}

j查询

$(document).ready(function(){

$("#button").click(function(){

$("#rect").addClass("closed");

});
});

我希望当我单击文本“单击我”时矩形会消失,但没有任何反应。我已经检查了一个警告框,其他一切都有效。这是我的第一次尝试,所以我希望这可能是我做错的非常简单的事情。任何帮助表示赞赏。

最佳答案

那是因为您的 CSS 选择器的特殊性。您正试图用类覆盖 ID。这是行不通的,因为 ID 比类具有更高级别的特异性。

# = ID

. = 类

这里的主要内容是更改选择器的特异性,我在下面概述了一些选项。

将 ID 更改为类

#rect更改为.rect

$("#button").click(function() {

$(".rect").addClass("closed");

});
.rect {
float: left;
height: 400px;
width: 550px;
background-color: blue;
}
.closed {
height: 0;
}
#button {
float: right;
margin-top: 200px;
margin-right: 500px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="rect"></span>
<p id="button">click here</p>

使用不同的 CSS 属性

如果您不想更改您的 ID,那么您可以让 .closed 应用 #rect 尚未设置的属性,但也会隐藏像 display: none; 这样的元素。

$("#button").click(function() {

$("#rect").addClass("closed");

});
#rect {
float: left;
height: 400px;
width: 550px;
background-color: blue;
}
.closed {
display: none;
}
#button {
float: right;
margin-top: 200px;
margin-right: 500px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span id="rect"></span>
<p id="button">click here</p>

增加 CSS 选择器的特异性

根据下面的评论,您可以更改其中一个选择器以使其更具体。

.closed 更改为 #rect.closed(t. 之间没有空格)。这将针对 ID 为 #rect .closed 类的元素。

$("#button").click(function() {

$("#rect").addClass("closed");

});
#rect {
float: left;
height: 400px;
width: 550px;
background-color: blue;
}
#rect.closed {
height: 0;
}
#button {
float: right;
margin-top: 200px;
margin-right: 500px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span id="rect"></span>
<p id="button">click here</p>

关于jquery - addClass 方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40291952/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com