我想获取具有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>
答案 0 :(得分:3)
如果提供了选择器,则只有与该选择器匹配时,它才会检索前一个同级。 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>
答案 1 :(得分:1)
获取匹配的元素集中每个元素的前一个同级。
您可以使用.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>