为什么最近的不工作?

时间:2016-12-26 11:33:21

标签: jquery

我们需要选择特定元素的最接近和前一个元素。

这样做的方法是什么?已经尝试了closest,但它似乎没有起作用。



debugger;
$(document).load(function() {
  var header = $("#btn").prevAll(".header");
  console.log(header.innerHtml);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1 class='header'>h1.header 1</h1>
<h1 class='header'>h1.header 2</h1>
<button id='btn'>
  button#btn
</button>
<h1 class='header'>h1.header 3</h1>
<h1 class='header'>h1.header 4</h1>
&#13;
&#13;
&#13;

警报应该在其中h1.header 2

1 个答案:

答案 0 :(得分:2)

.header是目标按钮的兄弟,而不是它的祖先。您需要定位前一个兄弟元素而不是父元素。请将.prevAll()改为使用:first

$(document).ready(function() {
  var header = $("#btn").prevAll(".header:first");
  alert(header.text());
});

&#13;
&#13;
$(document).ready(function() {
      var header = $("#btn").prevAll(".header:first");
      alert(header.text());
    });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<h1 class='header'>h1.header 1</h1>
    <h1 class='header'>h1.header 2</h1>
    <button id='btn'>
      button#btn
    </button>
    <h1 class='header'>h1.header 3</h1>
    <h1 class='header'>h1.header 4</h1>
&#13;
&#13;
&#13;