我想使用JavaScript进行非常简单的展开/折叠,当我点击“标题”时,它会显示“文字”(当页面首次加载时会隐藏)。此外,当我再次点击“标题”时,我希望“文本”再次隐藏。
<div>
<h1>Title</h1>
<p>Text</p>
</div>
我以前从未使用过jQuery或JavaScript,所以如果你能解释一下这个切换代码是如何工作的话会很棒。感谢。
答案 0 :(得分:6)
这应该这样做:
$(function() {
$('h1').click(function() {
$(this).next('p').toggle();
});
});
现在让我解释一下代码。
第一行是接受在文档加载完成后运行的函数。它相当于:
$(document).ready(function() {
// Stuff to do when the document is ready.
});
中间的代码说,对于每个h1
元素,当它被点击时,执行一个函数,找到它旁边的p
元素并切换其可见性。第一个选择器中的this
引用实际的<h1>
DOM元素。我是这样做的,所以如果你有一个类似下面的结构,那么切换只会影响段落旁边的内容。
<div>
<h1>Section 1</h1>
<p>Section 1 Content</p>
</div>
<div>
<h1>Section 2</h1>
<p>Section 2 Content</p>
</div>
干杯!
答案 1 :(得分:1)
使用toggle。
$('h1').bind('click', function(){
$('p').toggle();
});
答案 2 :(得分:1)
<head>
<!-- other content, including jQuery script tag -->
<script type="text/javascript">
$(function(){ // trigger when document's ready
// hide the pragraph initially
$('p').hide();
// add a click event to the header so we can hide/show the paragraph
$('h1').click(function(e){
// $(this) is the header, next finds the next paragraph sibling (they're both
// withint he div, so the header and div are known as siblings) then toggle
// toggles if this found paragraph should be shown or hidden
$(this).next('p').toggle();
});
});
</script>
</head>
单击DIV指示jQuery查找作为段落的“next”元素(因为标题和段落是同一节点的兄弟),然后toggle
s。
我还在代码中添加了一个隐藏,因为在我看来,最好隐藏javascript中的内容,这样如果他们不支持javascript,就不会缺少内容。其他人使用CSS样式并且仅使用javascript显示,这很好,但如果他们没有或禁用页面上的JS,则无法再次查看该内容。
答案 3 :(得分:0)
试试这个
$("h1").click(function(){
$("p").slideToggle(500);
});