如何使用jQuery查找上一课?

时间:2018-11-20 09:27:53

标签: javascript jquery html jquery-selectors

我想获取具有id的先前标签值,但是当我单击三个时获得值,而当我单击四个而五个时却没有。

我如何得到它?

这是我尝试过的:-

$(document).ready(function() {
    $('ul li').click(function() {
        alert($(this).prev('.two').text());
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
    <li>One</li>
    <li class="two">Two</li>
    <li>Three</li>
    <li>Four</li>
    <li>Five</li>
</ul>

2 个答案:

答案 0 :(得分:3)

  

如果提供了选择器,则只有与该选择器匹配时,它才会检索前一个同级。 docs

.prev()的参数为条件。意味着如果前一个元素是.two,请选择它,否则请选择。 您需要使用.siblings()

$('ul li').click(function(){
  console.log($(this).siblings('.two').text());
});    
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
  <li>One</li>
  <li class="two">Two</li>
  <li>Three</li>
  <li>Four</li>
  <li>Five</li>
</ul>

答案 1 :(得分:1)

.prev( [selector ] )

  

获取匹配的元素集中每个元素的前一个同级。

您可以使用.prevAll():first

  

获取匹配元素集中每个元素的前一个同级。如果提供了选择器,则只有与该选择器匹配时,它才会检索前一个同级。

$(document).ready(function(){
  $('ul li').click(function(){
     alert($(this).prevAll('.two:first').text());
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<ul>
    <li>One</li>
    <li class="two">Two</li>
    <li>Three</li>
    <li>Four</li>
    <li>Five</li>
</ul>