Javascript Jquery使用类选择上一个元素
我有三个要素:Javascript Jquery使用类选择上一个元素,javascript,jquery,Javascript,Jquery,我有三个要素: <div class='first'>First</div> <div class='second'>Second</div> <div class='target'>Target</div> 输出类似于:“Second undefined”,但如果我正确理解.prev()用法的参数,则应该类似于:“Second first”。 那么,如何获得具有特定类的前一个元素? 下面是供您使用的fiddle:您可以使
<div class='first'>First</div>
<div class='second'>Second</div>
<div class='target'>Target</div>
输出类似于:“Second undefined”,但如果我正确理解.prev()用法的参数,则应该类似于:“Second first”。
那么,如何获得具有特定类的前一个元素?
下面是供您使用的fiddle:您可以使用
同级()
,它将返回具有特定类的元素,并且与调用elment的级别相同。但要确保target
$(document).on('click','.target',function(){
console.log($(this).siblings('.second').html());
console.log($(this).siblings('.first').html());
});
或者您可以使用prevAll()
在您的第二个
控制台.log()
中,您的这个仍然是.target
并且它没有。第一个类,所以它说未定义
要获得第一次跳水,请执行以下操作:
console.log($(this).prev().prev().html());
从jQuery文档
描述:获取中每个元素的前一个同级
匹配元素的集合,可选地由选择器过滤
选择所有前面的同级元素,而不仅仅是
在相邻同级之前,使用.prevAll()方法
因此,您应该使用console.log($(this.prevAll('.first').html())代码>使用preval()
而不是prev()
$(文档).on('click','target',function()){
警报($(this.prevAll('.second').html());
警报($(this.prevAll('.first').html());
});代码>
弗斯特
第二
Target
Jquery.prev()
始终获取前一个兄弟
如果您将选择器作为参数传递,它将过滤要匹配的前面元素,如果它不匹配,它将返回undefined,在您的情况下就是这样
$('.target').prev().html()
与
$('.target').prev('.second').html();
哪个将返回“秒”
如果您传递除“.second”之外的任何选择器,它总是返回未定义的,因此,您的案例
$('.target').prev('.first').html();
是exprected,返回undefined,因为“.first”与前面的元素选择器不匹配
更新:
如果你想得到第一个使用权
$('.target').prev().prev().html();
您还可以使用$(“div:eq(3)”)
来获取确切的元素。最好的例子是$(“ulli:eq(3)”)
$('.target').prev('.first').html();
$('.target').prev().prev().html();