I’m trying to select the form element which is the distant parent of a button. The button is deeply nested inside of a div. I have two type of forms in two pages so I’m using the same event for both of them. That’s why I’m using bother the selectors separated by a comma.
$('.createForm, .editForm').on('click', '.delete-btn', function() { console.log($(this)) });
.delete-btn{ background-color: red; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <form action="/submit" method="POST" class="editForm"> <div class="form-group"> <div class="d-flex "> ....some elements </div> </div> <div class="form-group"> ....some elements </div> <div class="form-group"> ....some elements </div> <div class="form-group"> <div> <div></div> <div> <div class="post-container"> <textarea></textarea> <button type="button" class="delete-btn">Test</button> </div> </div> <div></div> </div> </div> </form>
What I tried so far:
1. console.log( $( this ).parent() ); 2. console.log( $( this ).parent( 'form' ) ); 3. console.log( $( this ).parents() ); 4. console.log( $( this ).parents( 'form' ) ); 5. console.log( $( this ).parentsUntil() ); 6. console.log( $( this ).parentsUntil( 'form' ) ); 7. console.log( $( this ).parent().parent().parent().parent() ); 8. console.log( $( this ).closest( 'form' ) );
Please note that the same jQuery code works when I use an input element instead of a button. Although the input element is one level out of a div than the button.
Advertisement
Answer
This is the correct working code
$('body form').hasClass('.editForm')