我们需要选择特定元素的最接近和前一个元素。
这样做的方法是什么?已经尝试了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;
警报应该在其中h1.header 2
。
答案 0 :(得分:2)
.header
是目标按钮的兄弟,而不是它的祖先。您需要定位前一个兄弟元素而不是父元素。请将.prevAll()
改为使用:first
:
$(document).ready(function() {
var header = $("#btn").prevAll(".header:first");
alert(header.text());
});
$(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;