【问题标题】:How can I find previous class using jQuery?如何使用 jQuery 找到以前的课程?
【发布时间】:2019-04-22 17:07:37
【问题描述】:

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

【问题讨论】:

  • 阅读您正在使用的方法的文档!它清楚地表明 .prev 找到紧接在前面的兄弟。它还提到了 .prevAll
  • 感谢@misorude 的建议!

标签: javascript jquery html jquery-selectors


【解决方案1】:

如果提供了选择器,则仅当它与该选择器匹配时,它才会检索前一个兄弟。 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>

【讨论】:

  • 我想获取上一个标签值而不是下一个,它也可以点击一个
【解决方案2】:

.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>

【讨论】:

  • prevAll 选择所有先前的.two 元素。如果您有多个.two,它会返回不需要的结果。
猜你喜欢
  • 1970-01-01
  • 2021-12-23
  • 1970-01-01
  • 2021-11-06
  • 2021-02-12
  • 2017-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多