dポイントプレゼントキャンペーン実施中!

質問させていただきます。

下記ソースコードでqjueryの記述があります。
$(document).ready(function() {
$('.main-text20').on('click', function() {
$(this).next('.hidden-text').slideToggle();
});
});

上記だとクリックした場所が表示・非表示されます。
ですが、下記だとどちらかをクリックしたら同時に表示・非表示されます。
$(document).ready(function() {
$('.main-text20').on('click', function() {
$('.hidden-text').slideToggle();
});
});

意味合いとしては同じだと思うのですが、どうして動作に違いがあるのでしょうか。
どなたかご教示お願い致します。



<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://code.jquery.com/jquery-3.5.1.min.js"
integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="
crossorigin="anonymous">
</script>
</head>
<style>
.container22 {
position: relative;
background-color: white;
padding-bottom: 50px;
}

.fa-question-circle {
color:rgb(6, 83, 40)
}

.container22-2 {
border: solid 4px gainsboro;
width: 80%;
margin: 30px auto;
padding: 10px;
}

.container22-2::after {
position: absolute;
content: '>';
transform: rotate(90deg);
color: green;
font-weight: bold;
right: 10%;
top: 38%;
color: gainsboro;
}

.main-text20:hover {
cursor: pointer;
text-decoration: underline;

}


.hidden-text {
display: none;
margin-top: 20px;
}

</style>

<body>
<div class="container22">
<i class="far fa-envelope-open"></i>
よくある質問
<div class="container22-2">
<a class="main-text20">
<i class="far fa-question-circle"></i>
プログラミングスキルは必要ですか?</a>
<div class="container22-3 hidden-text">
<p class="main-text20-2">いいえ必要ありません。しかし、iSaraでは参加費以上の金額が稼げることを保証しています。従って、事前通話面談時点<br>
で簡単なテストを実施し、場合によってはお断りをしております。この点だけはご了承ください。</p>
</div>
</div>
<div class="container22-2">
<a class="main-text20">
<i class="far fa-question-circle"></i>
プログラミングスキルは必要ですか?</a>
<div class="container22-3 hidden-text">
<p class="main-text20-2">いいえ必要ありません。しかし、iSaraでは参加費以上の金額が稼げることを保証しています。従って、事前通話面談時点<br>
で簡単なテストを実施し、場合によってはお断りをしております。この点だけはご了承ください。</p>
</div>
</div>
</div>
<script>
$(document).ready(function() {
$('.main-text20').on('click', function() {
$(this).next('.hidden-text').slideToggle();
});
});
</script>
</body>
</html>

A 回答 (1件)

同じではありません。



$(this) が付いている方は、クリックしたオブジェクトに限定しています。

下記は hidden-text クラスの全てが対象です。

$('.hidden-text').slideToggle();
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!