0

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');

しかし、私はそれを取得できませんでした..誰かが私を助けることができます..

4

3 に答える 3

2

.contentParentは直接の親戚ではないため、最も近い共通の親を見つけて、そこからトラバースする必要があります。

var ascende = $(this).closest('#queryLi1').find('.contentParent');

多くの項目でこれを行う必要がある場合は、最も外側にクラス名を追加し、LI代わりにクラス セレクターを使用し#queryLi1ます。

または、兄弟を見つけてトラバースします。f.ex:

var ascende = $(this).parents('ul').slice(-1).prev();
于 2012-09-12T07:44:02.887 に答える
1

クラスで親のリストを取得しcontent、最後のリストを取得してから、クラスでスパンの兄弟をチェックすることでそれを行うことができますcontentParentulこれは、DOM より上のクラスの要素がこれ以上ないことを前提としていcontentます。

var span = $(this)
        .parents('ul.content')
        .last()
        .siblings('span.contentParent');

http://jsfiddle.net/UQhte/

于 2012-09-12T07:55:53.053 に答える
-1

.parents() jquery メソッドを使用できます。

$(this).parents('.contentParent');

これにより、最初に見つかった祖先が取得されます。ここにフィドルがあります:http://jsfiddle.net/HLATf/3/

于 2012-09-12T07:54:24.687 に答える