jQuery - 寻找下一个Div

时间:2011-07-19 18:08:36

标签: jquery

我试图在输入按钮后找到下一个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>

你能解释一下吗?

5 个答案:

答案 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();
});