Computer Wiz99 Ответов: 3

Почему только один абзац скрывает и показывает, а не все?


У меня есть HTML-сайт, над которым я работаю, и я использую jQuery в определенной части. Я создал функцию скрыть и показать, но могу получить только первый абзац, чтобы скрыть и показать, а не все одновременно. Я что-то пропустил в коде jQuery или HTML-коде?

Вот HTML-код:

<!DOCTYPE html>

<html lang="en">

<head>
	<title>Path of Light Yoga Studio :: Classes</title>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
	<script src="yoga.js"></script>
</head>
<body>
	<div id="wrapper">
	<header><h1>Path of Light Yoga Studio</h1></header>
		<p></p>
			<a href="index.html">Home</a>  
			<a href="Classes.html">Classes</a> 
			<a href="Schedule.html">Schedule</a> 
			<a href="Contact.html">Contact</a>
			<a href="Store.html">Store</a>
		<p></p>
	
		<p></p><div id="hero"></div><p></p>
		<br>
	<button id="hide">Hide</button>
	<button id="show">Show</button>

			<h2>Yoga Classes</h2>
		<br>
		<dl>
			<dt>Gentle Hatha Yoga</dt>
			<dd><div id="p">Intended for beginners and anyone wishing a grounded foundation in the practice of yoga, 
				this 60 minute class of poses and slow movement focuses on asana(proper alignment and posture),
				pranayama (breath work), and guided meditation to foster your mind and body connection.<p></p></div></dd>
			<br>
			<dt>Vinyasa Yoga</dt>
			<dd><div id="p">Although designed for intermediate to advanced students, geginners are welcome to sampe this 60 minute class 
				that focuses on breath-synchronized movement -- you will inhale and exhale as you flow energetically through 
				yoga poses.<p></p></div></dd>	
			<br>
			<dt>Restorative Yoga</dt>
			<dd><div id="p">This 90 minute class features very slow movement and long poses that are supported by a chair or wall. This calming, 
				restorative experience is suitable for students of any level of experience.
				This practice can be a perfect way to help rehabilitate an injury.<p></p></div></dd>
			
		</dl>

	

        Copyright 2016 © Path of Light Yoga<br>
        <a>khopkin5@my.westga.edu</a>

</div>
</body>


Вот мой код jQuery:

$(document).ready(function(){
    $("#hide").click(function(){
        $("#p").hide();
    });
    $("#show").click(function(){
        $("#p").show();
    });
});

Please Help!


Что я уже пробовал:

Я пробовал различные функции jQuery и функцию переключения. Я знаю, что функция переключения больше не работает.

3 Ответов

Рейтинг:
2

Dave Kreskowiak

Идентификаторы должны быть уникальными. Не давайте нескольким тегам один и тот же идентификатор.

Если вы хотите изменить несколько тегов, дайте им один и тот же CSS-класс, а не один и тот же идентификатор. Затем вам нужно изменить селекторы в коде, который вы используете, чтобы скрыть и показать теги. Они должны искать имя класса, а не идентификатор.


Computer Wiz99

О каких тегах вы говорите? Div id или что-то еще?

Dave Kreskowiak

В DIV у вас есть идентификационный тег, который вы ищете.

Рейтинг:
15

Karthik_Mahalingam

изменить id к class

<dd><div id="p">

<div class="p"></div>

а в jquery
$(".p").hide()

$(".p").show()


или вам придется использовать .фильтр() [^]
$('div').filter('#p').hide()


Computer Wiz99

Итак, как я могу заставить кнопку Скрыть и показать использовать только одну кнопку и изменять текст на этой кнопке?

Karthik_Mahalingam

нужна дополнительная информация

Рейтинг:
1

Peter Leow

Пример говорит тысячу слов...
Вы преподаете класс под названием CW1601B. В этом классе есть в общей сложности 38 студентов, каждый из которых имеет уникальный идентификатор (предполагая, что это имя студента). Как вы выбираете конкретного ученика, чтобы ответить на ваш вопрос во время урока? Да, вы называете этого студента по id (имени), верно? Подходя к концу урока, вы распускаете класс, называя его имя, верно? Конечно, вы также можете вызвать 38 идентификаторов(имен) один за другим. Та же концепция применима к именованию и выбору HTML-элементов в JQuery и CSS.
Учить селекторы jQuery[^]