使用 JavaScript 隐藏/显示
Hiding/Showing <div> with JavaScript
。
我想了解为什么我的代码不起作用,以便更好地了解问题出在哪里。
这是我第一次尝试 JavaScript,我只想在单击另一个div 时显示/隐藏一些div。 具体来说,使用以下 JavaScript 代码,我想隐藏所有div(以防已经显示了div(,然后显示我想显示的div。
这些是文件:
索引.html
<!DOCTYPE html>
<html>
<head>
<title>JavaScript First Try</title>
<link rel="stylesheet" type="text/css" href="main.css"/>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script href="description.js"></script>
</head>
<body>
<div class="articles">
<div class="title"><h3>Mario regala collana a Sandrone</h3></div>
<div class="description">
<p>Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
<div class="title"><h3>Mario regala collana a Silvia.jpg</h3></div>
<div class="description">
<p>Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
<div class="title"><h3>Mario regala collana a Cazzo</h3></div>
<div class="description">
<p>Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
</div>
</body>
</html>
主.css
body {
font-family: Helvetica-light;
}
.title {
height: 25px;
border-bottom: 1px solid #a0a0a0;
}
.description {
display: none;
}
说明.js
/*global $, jQuery, alert*/
var main = function () {
'use strict';
$('.title').click(function () {
$('.description').hide();
$(this).children('.description').show();
});
};
$(document).ready(main);
问题是,当我点击我的 .titlediv 时,什么也没发生,我不知道问题出在我的 JavaScript 代码中还是还有其他我仍然不知道的东西。
PS:我在JavaScript文件的顶部添加了"/global $,jQuery,alert/",因为否则编译器会给我"$"在定义之前使用。$('.title'(click(function (({ " 错误,但我真的不知道它是否是正确的解决方案。
您的描述div 不是标题div 的子级,因此它不起作用。我已经对代码进行了一些更改,正如您在此处看到的那样
$('.title').click(function () {
$('.description').hide();
$(this).children('.description').show();
});
.HTML:
<div class="articles">
<div class="title"><h3>Mario regala collana a Sandrone</h3> <!-- removed the closing </div> tag -->
<div class="description">
<p>Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div></div> <!-- and added it here -->
<div class="title"><h3>Mario regala collana a Silvia.jpg</h3>
<div class="description">
<p>Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div></div>
<div class="title"><h3>Mario regala collana a Cazzo</h3>
<div class="description">
<p>Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
</div>
</div>
另外,您在这里有一个错误:
<script href="description.js"></script>
这应该是
<script src="description.js"></script>
主要问题是<script href="description.js"></script>
应该<script src="description.js"></script>
- src
不是href
.
此外,您的.description
不在.title
内,因此它不会找到相关的描述,并且它们都将保持隐藏状态。
所以你需要获取下一个元素:
/*global $, jQuery, alert*/
var main = function () {
'use strict';
$('.title').click(function () {
$('.description').hide();
$(this).next().show();
});
};
$(document).ready(main);
相关文章:
- 在jquery中为显示/隐藏设置cookie
- PHP Javascript显示/隐藏按钮不工作
- 打开/关闭按钮以显示/隐藏内容
- 显示隐藏复选框
- 在bootstrap中显示隐藏特定的li
- JQuery上下文菜单显示/隐藏问题
- JQuery在单击时停止显示/隐藏
- HTML5在提交并显示所需标签后显示隐藏的表单元素
- 使用 jQuery 切换显示/隐藏
- 显示/隐藏有关模型更改的指令内容
- Bootstrap在页面加载缓慢时会立即显示隐藏的模式对话框
- 根据特定条件使用ng显示/ng隐藏来显示/隐藏元素
- 显示/隐藏不起作用
- 使用ng-hide根据条件显示/隐藏按钮
- 仅在第一个结果中显示/隐藏MySQL结果函数
- 显示/隐藏http://ftp链接
- 在显示/隐藏中单击时删除的文本
- 是否可以在不重新渲染的情况下显示/隐藏父对象中的元素
- 将页面内容向左移动时显示/隐藏右侧面板
- 显示/隐藏将不会加载