Hai我有以下html列表。
<ol id="queryList">
<li id="queryLi1">
<span class="contentParent">First Level</span>
<ul class="content">
<li id="innerList594" class="content">
Second Level
<ul class="content">
<li>
Third Level
<textarea id="text1" cols="3" style="width: 250px"></textarea>
<input id="button1" type="button" value="Save" >
</li>
</ul>
</li>
</ul>
</li>
<li id="queryLi2">
<span class="contentParent">First Level</span>
<ul class="content">
<li id="innerList525" class="content">
Second Level
<ul class="content">
<li>
Third Level
<textarea id="text2" cols="3" style="width: 250px"></textarea>
<input id="button2" type="button" value="Save">
</li>
</ul>
</li>
</ul>
</li>
.
.
.(etc.,)
在此列表中,当我点击Save button1
时,我想采用它的上升<li id="queryLi1"><span class="contentParent">
元件。与所有列表项相同..例如,如果我点击Save button2
我想要<li id="queryLi2"><span class="contentParent">
..
我试过这个
var ascende = $(this).closest('.contentParent');
但我没有得到它..任何人都可以帮助我..
答案 0 :(得分:2)
.contentParent
不是直系亲属,你需要找到最近的共同父亲,然后从那里进行遍历:
var ascende = $(this).closest('#queryLi1').find('.contentParent');
如果您需要在许多项目上执行此操作,请将类名称添加到最外层LI
并使用类选择器而不是#queryLi1
。
或者,找一个兄弟,然后遍历,f.ex:
var ascende = $(this).parents('ul').slice(-1).prev();
答案 1 :(得分:1)
您可以通过获取类content
的父级列表并选择最后一个,然后检查其兄弟姐妹的班级contentParent
的范围来实现。这确实假设没有更多ul
元素,其中content
类更进一步向上。
var span = $(this)
.parents('ul.content')
.last()
.siblings('span.contentParent');
答案 2 :(得分:-1)
您可以使用.parents()jquery方法。
$(this).parents('.contentParent');
这将检索第一个找到的祖先。这是一个小提琴:http://jsfiddle.net/HLATf/3/