我有这个HTML(评论显示了JQuery应该如何应用我需要的最后一个父元素)
<div id="profilesHolder">
<div class="parentArrow"></div>
<!-- THE LAST PARENT JQUERY SHOULD FIND -->
<div class="scrapItemParent">
<img class="scrapProfilePic" src=" static/img/user/personalProfilePicture/mod_50_50/0d6e6c14fb915c8db38ee4d17e0d4631cb4538a9.jpg" />
<!-- THE SECOND PARENT JQUERY SHOULD FIND -->
<div class="scrapContent">Test Scrap no. 1. <a class="scrapLink" href="http://google.com">google.com</a> <a class="scrapLink" href="http://bing.com">bing.com</a> <a class="scrapLink" href="http://nokia.com">nokia.com</a><br />
<div class="scrapImg">
<img class="scrapImgItem" src="../../../scrapll_m/static/img/user/scrap/orig/12f3c8ce2aa2626fbaaf6bec54933a6185f9e63d.jpg" alt="Scrap Image" />
<img class="scrapImgItem" src="../../../scrapll_m/static/img/user/scrap/orig/1df38f26091c23f942bc1529a0391b8309892c23.jpg" alt="Scrap Image" />
<img class="scrapImgItem" src="../../../scrapll_m/static/img/user/scrap/orig/ef101b36d5ed6a420fcef6ddc7a13aa18da4c121.jpg" alt="Scrap Image" />
<img class="scrapImgItem" src="../../../scrapll_m/static/img/user/scrap/orig/601eb46725685f9390efae57af1c39596accc705.jpg" alt="Scrap Image" />
</div>
<iframe class="scrapVideo" src="//www.youtube.com/embed/Ys6-DCotJt8" frameborder="0" allowfullscreen></iframe><br />
<!-- THE FIRST PARENT JQUERY SHOULD FIND -->
<span class="scrapTime">2014-05-21 17:03:21<br />Erol Simsir
<a class="replyLink" href="#">Reply</a> <!-- STARTING POINT TO FIND THE PARENT DIV -->
</span>
</div>
</div>
这是JS:
$(window).load(function() {
$('.replyLink').click(function(){
var currentHeight = $(this).parentsUntil("#profilesHolder").height();
alert(currentHeight);
});
});
使用$(window).load()给了有同样问题的人一个提示,但它没有为我改变任何东西($(document).ready())。
无论如何,JS表明JQuery应该查找元素'.replyLink'的父元素,一直到元素'#profilesHolder'。这意味着应该通过JQuery找到元素'.scrapItemParent'。这很顺利,因为当我这样做JS时,例如:
$(window).load(function() {
$('.replyLink').click(function(){
$(this).parentsUntil("#profilesHolder").css("background", "red");
});
});
这段代码有效,它改变了右父元素的背景,但是当我想获得JQuery找到的父元素的高度时,它会一直显示30,这是'直接父元素的高度' .replyLink”。因此,当我在parentsUntil()函数之后使用height()函数时,parentsUntil()函数在找到直接父级的高度后停止,而不是一直向上移动'.scrapItemParent'元素。
谁可以帮我解决这个问题?
答案 0 :(得分:1)
尝试从parentsUntil()切换到nearest()。我在这个example fiddle测试了它,它似乎有效。
$(this).closest("#profilesHolder").height();
小提琴示例 - http://jsfiddle.net/8N9Xh/
答案 1 :(得分:0)
由于ID是唯一的,您可以使用
$("#profilesHolder").height();