使用此关键字在jQuery中选择标记的特定元素

时间:2017-06-15 21:34:15

标签: javascript jquery html

在jQuery中有prev()方法,它返回DOM中的前一个元素。但我的问题是,是否有可能使用$(this)关键字获取某个特定标记的前一个元素。我正在尝试$(this).prev()选择第3个元素,但它不起作用(至少在表单上)。

<div>
  <span class="item item-1">Item 1</span>
  <span class="item item-2">Item 2</span>
  <span class="item item-3">Item 3</span>
  <span class="item item-4">Item 4</span>
  <span class="item item-5">Item 5</span>
  <a href="#">Click</a>
</div>

1 个答案:

答案 0 :(得分:1)

我以为你想选择这样的第二项。假设您有两到三个跨度,并且您想要选择第二个跨度,则需要使用.prevAll()而不是.prev()。对于您的示例,让我向您展示一个工作片段:

&#13;
&#13;
$(function () {
  $("a").click(function () {
    console.log($(this).prevAll("span").eq(3).text());    // "Item 2"
    console.log($(this).prevAll(".item").eq(3).text());   // "Item 2"
    console.log($(this).prevAll(".item-2").text());       // "Item 2"
  });
});
&#13;
div > * {display:block;}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <span class="item item-1">Item 1</span>
  <span class="item item-2">Item 2</span>
  <span class="item item-3">Item 3</span>
  <span class="item item-4">Item 4</span>
  <span class="item item-5">Item 5</span>
  <a href="#">Click</a>
</div>
&#13;
&#13;
&#13;

希望这有效!