如何选择相关元素jquery的prev no

时间:2018-01-19 00:11:45

标签: javascript jquery css css-selectors

我想滑动div,所有这些都将具有相同的id,因为它们将生成内部循环,因此触发器具有相同的id。这就是为什么我想使用一个函数,目前函数只适用于第一个div,我不知道如何修复它。我希望每个按钮都适用于他之上的div。

html部分

<div id='slide'>
hello
</div>
<p id='but'>click</p>

<div id='slide'>
hello
</div>
<p id='but'>click</p>

和js

$(document).ready(function(){
$(this).click(function(){
    $("#slide").slideToggle("slow");
    });
});

2 个答案:

答案 0 :(得分:0)

几个问题:

使用类而不是ID并使用点击元素#but的ID而不是this作为点击功能

<div class='slide'>
hello
</div>
<p class='but'>click</p>

<div class='slide'>
hello
</div>
<p class='but'>click</p>

$(document).ready(function(){
    $('.but).click(function(){
       $(".slide").slideToggle("slow");
    });
});

答案 1 :(得分:0)

首先,在一个页面上不要使用id - 而是使用class es。如果您想在点击项目之前对元素执行某些操作,可以使用prev(),类似这样的内容(在您的代码中只需将css('color', 'red')更改为slideToggle("slow"),我只是添加了它,例如):

&#13;
&#13;
$(document).ready(function() {
  $(".but").click(function() {
    $(this).prev().css('color', 'red');
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='slide'>
  hello
</div>
<p class='but'>click</p>

<div class='slide'>
  hello
</div>
<p class='but'>click</p>
&#13;
&#13;
&#13;