#javascript #html #jquery #css #flask
Вопрос:
Вот мой код: когда я нажимаю на одну кнопку, она скрывает все ссылки. И также показать на одной кнопке. Ссылки и заголовки-это списки, которые изменяют свою длину в python. Я хочу показать ссылку только на кнопку, на которую нажимают не все. Я также пробовал использовать div, но также возникла та же проблема.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Python Jobs</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.9.3/css/bulma.min.css">
<section class="hero is-dark is-bold">
<div class="hero-body">
<p class="title">
Job Title
</p>
<p class="subtitle">
Python jobs
</p>
</div>
</section>
<script>
$(document).ready(function(){
$("#hide").click(function(){
$("a").hide();
});
$("#show").click(function(){
$("a").show();
});
})
</script>
</head>
<body>
<section class="section">
<div class="container">
{% for i in range(0, len-1) %}
<h3>{{i 1}}. {{title[i]}}</h3>
<a href={{links[i]}}>{{links[i]}}</a>
<button id="show">Show</button>
<button id="hide"> Hide</button>
<br>
{% endfor %}
</div>
</section>
</body>
</html>
Комментарии:
1. Идентификаторы должны быть уникальными.
id="show"
иid="hide"
не являются уникальными.
Ответ №1:
В вашем коде есть несколько проблем.
- идентификатор должен быть уникальным, поэтому используйте класс вместо идентификатора.
- Оберните каждый заголовок и свяжите его с контейнером. В вашем случае переместите div внутрь цикла for.
- На основе вашей кнопки нажмите найти свой заголовок и ссылку, чтобы показать / скрыть.
- Изначально скройте свой заголовок и ссылку (это зависит от вашей логики, от того, как вы хотите представить пользовательский интерфейс)
Пример:
$(".hide").click(function() {
$(this).parent('div').find('a ,h3').hide();
});
$(".show").click(function() {
$(this).parent('div').find('a ,h3').show();
});
a,
h3 {
display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container">
<h3>Title1</h3>
<a href="link1">Link1</a>
<button class="show">Show</button>
<button class="hide"> Hide</button>
</div>
<div class="container">
<h3>Title2</h3>
<a href="link1">Link2</a>
<button class="show">Show</button>
<button class="hide"> Hide</button>
</div>