我试图在输入按钮后找到下一个div并切换它。
我做错了什么?
JS:
$(".showNextExperience").click(function() {
$(".experience").show();
});
HTML:
<input class="showNextExperience" >
<div class="experience">Experience 1</div>
<input class="showNextExperience">
<div class="experience">Experience 2</div>
<input class="showNextExperience">
<div class="experience">Experience 3</div>
<input class="showNextExperience" >
<div class="experience">Experience 4</div>
好的,这不起作用---
$(".showExperience").click(function() {
$(this).next(".experience").toggle();
});
<table class="data">
<tr class="tableHead">
<td></td>
<td width="50" align="right"><input type="button" class="showExperience" value="show"></td>
</tr>
</table>
<div class="experience">2</div>
当我在DIV上方移动输入按钮时,它工作得很好。
$(".showExperience").click(function() {
$(this).next(".experience").toggle();
});
<input type="button" class="showExperience" value="show">
<div class="experience">2</div>
你能解释一下吗?
答案 0 :(得分:15)
简单地:
$(".showNextExperience").click(function() {
$(this).next(".experience").toggle();
});
请参阅:
答案 1 :(得分:6)
$(".showNextExperience").click(function() {
$(this).next().show();
});
答案 2 :(得分:3)
试试这个
$(".showNextExperience").click(function() {
$(this).next("div.experience").toggle();
});
答案 3 :(得分:0)
$(this).siblingings().eq(0)
应该这样做。
答案 4 :(得分:0)
假设您在触发输入和操纵div之间有一些元素:
<input class="showNextExperience" >
<p>Hello, new line</p>
<div class="experience">Experience 1</div>
<input class="showNextExperience">
<p>Some text</p>
<div>And an info block</div>
<div class="experience">Experience 2</div>
然后,您不仅必须使用nextAll
来搜索下一个元素,而且还要搜索整个DOM,这可能比使用next().find()
来进行编码更简单:
$(".showNextExperience").click(function() {
$(this).nextAll(".experience").toggle();
});