如何使用 jQuery 找到之前的 class?

How can I find previous class using jQuery?

我想用 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>

If a selector is provided, it retrieves the previous sibling only if it matches that selector. docs

.prev()的参数是条件。意思是如果前一个元素是 .two select 它,如果不是。 您需要使用 .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>

.prev( [selector ] )

Get the immediately preceding sibling of each element in the set of matched elements.

您可以使用 .prevAll():first:

Get the immediately preceding sibling of each element in the set of matched elements. If a selector is provided, it retrieves the previous sibling only if it matches that selector.

$(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>