在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>
答案 0 :(得分:1)
我以为你想选择这样的第二项。假设您有两到三个跨度,并且您想要选择第二个跨度,则需要使用.prevAll()
而不是.prev()
。对于您的示例,让我向您展示一个工作片段:
$(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;
希望这有效!