2016-12-26 3 views
0

codes given here複雑な文書の中で最も近い前の要素を取得するにはどうすればよいですか?

this fiddle, the same code is not workingを使用して、コンソールエラーを投げずに、最も近い前の要素を取得しようとしました。

var lastObj = $("#SomeButton"); 
var parent = lastObj.parent(); 
var previousObject = parent.prevUntil(".title:has(h4)").prev().find("h4"); 
    alert(previousObject.text()); 

ここで問題を理解してもらえますか?

1つの可能な方法はhaving multiple parentsですが、親の数が動的:(あなたはあなたを助けるためにclosest()を使用することができます

+0

前の要素は何ですか?ボタン?マークアップはコード例とは異なるので、明らかに動作しません。 – Ionut

+0

@Ionut、まさに、ボタンに最も近いものが必要です。私のコードの問題は何ですか?私はjQueryを初めて使っています。助けてもらえますか? – xameeramir

+0

学生、私の答えを参照してください。それがあなたを助けることを願っています – Ionut

答えて

1

であれば、これは壊れます。また、私はjQueryさん.onクリックイベントを使用するためにあなたを示唆しているであろうあなたはそれがおよそjQueryだと述べているので、だから私はあなたのコードビットを変更し、クリックイベントに追加され、このボタンをクリックした取得する$(this)$('#SomeButton')を置き換え:。

$('.SomeButtonClass').on('click', function(){ 
 
    var lastObj = $(this); 
 
    var parent = lastObj.parent(); 
 
    var previousObject = parent.closest(":has(h4)").find('h4'); 
 
    console.log(previousObject.text()); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="top"> 
 
    <div class="header"> 
 
    <h4 class="title">Title 1</h4> 
 
    </div> 
 
    <div class="body"> 
 
    <div id="someDiv"> 
 
     <div class="someOtherDiv"> 
 
     <div class="OneMoreDiv"> 
 
      <button id="SomeButton" class="SomeButtonClass">button</button> 
 
     </div> 
 
     </div> 
 
    </div> 
 
    </div> 
 
</div> 
 
<div class="top"> 
 
    <div class="header"> 
 
    <h4 class="title">Title 2</h4> 
 
    </div> 
 
    <div class="body"> 
 
    <div id="someDiv"> 
 
     <div class="someOtherDiv"> 
 
     <div class="OneMoreDiv"> 
 
     </div> 
 
     </div> 
 
    </div> 
 
    </div> 
 
</div>

+0

ありがとうございました@ Ionut、それは大きな助けになっています! – xameeramir

+0

@student、awesome。私は喜んでお手伝いします。 – Ionut

関連する問題