如何获取具有特定元素的上一个元素
How to get previous element which has a specific element?
我需要为包含特定元素的上一个元素选择元素。很难理解,让我这样解释吧。
HTML(DOM):
<div><a></a></div>
<div><p class="selectThis"></p></div> ------
-
<div><a></a></div> - select from previous element which holds class
-
<div><p class="fromThis"></p></div> --------
我以前尝试过的:
$('.fromThis').parent().prev(); //
这不是最漂亮的,但它选择了元素并添加了一个类
jQuery解决方案
$("a").on("click", function(event) {
event.preventDefault();
$(this).parent().prevAll().find(".selectThis").css({"background": "gold"});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div><a></a></div>
<div><p class="selectThis">This is a paragraph</p></div>
<div><a href="www.google.com">Select previous class</a></div>
<div><p class="fromThis"></p></div>
当你点击链接时,默认行为是打开一个新的选项卡。为了防止这种情况,我们可以调用preventDefault
操作。
要找到类为selectThis
的div,我们向上遍历以找到父元素,向后遍历以找到其同级元素。要查找兄弟姐妹的子女,我们使用find()
方法。
您可以进行
$('.fromThis').parent().prevAll().find('.selectThis');
从div的级别中,您将选择该级别上以前的所有兄弟(即其他div)。然后选择具有selectThis
类的div的所有后代。因此,它不仅必须选择一个元素或最接近fromThis
的元素,而且如果有更多的元素,则必须选择一整套元素。
如果只选择最接近原始元素的元素是很重要的,那么必须扩展如下表达式:
$('.fromThis').parent().prevAll().find('.selectThis').last();
我的解决方案是:找到第一个父级,然后找到所有兄弟级,因此筛选类:
$('.fromThis').parent().siblings().find('.selectThis')
相关文章:
- Javascript获取上一个元素的内容
- 在数组中的一个元素上设置多个值
- 如何将一个函数附加到一个不存在的元素上
- 如何选择给定类的上一个元素
- 将鼠标悬停在Angular JS中的一个元素上,并将Class添加到另一个元素中
- jQuery悬停动画只在其他类似元素中的一个元素上
- 有什么方法可以在下一个元素上进行追加吗
- 如何激活下拉菜单:在一个元素上单击768px宽度下方,在另一个元素上将鼠标悬停在768px上方
- 将SVG元素拖动到另一个SVG元素上
- 试图把注意力集中在一个不重要的元素上是不是一种糟糕的做法;不存在
- 仅在一个元素上显示微调器($.mobile.showPageLoadingMsg())
- 获取上一个元素 jQuery 的内容
- 获取下一个或上一个隐藏元素的高度,以设置父元素的高度.jquery.
- jQuery val() 返回一个在 select/option 元素上带有 IE8 的数组
- jQuery网站的键盘快捷键,焦点使用左键和右键转到上一个或下一个元素
- 我在Phaser有一个项目.我想在画布上的元素上做一个用户图像编辑器
- 将鼠标悬停在一个元素上,可以将类添加到另一个元素中
- 如果上一个元素为空,则隐藏下一个元素
- 是否可以将一个元素还原为它's上一个位置,而不将该位置作为参数传递
- 使用JQuery ^^获取元素上一个同级的值