2012-04-22 15 views
0

Можно создать дубликат:
jQuery: find all the parents up to a specific parentКак найти родителя с jQuery?

я следующее:

<div class="modal-window block-border"> 
    <ul class="action-tabs right"> 
     <li><a title="Close window" href="#"><img width="16" height="16" src="images/icons/fugue/cross-circle.png"></a></li> 
    </ul> 
    <div class="block-content no-title"> 
     <div style="min-width: 200px; min-height: 40px; width: 300px; height: 221px;" class="modal-content modal-scroll"> 
      <h1>Admin</h1> 
      <div class="block-header"> 
       Please login 
      </div> 
      <form novalidate="novalidate" action="/MyAccount/Access/JsonLogin" data-ajax="true" data-ajax-method="POST" data-ajax-mode="replace" data-ajax-success="dialogSuccess()" data-ajax-update="#update-message" name="login-form" id="login-form" method="post"> 

У меня есть ссылка на форму, которая составляет $ (это). Учитывая эту ссылку, как я могу найти ссылку на класс с верхней частью div, называемой «модальным окном»?

+1

hiya используя '.parent' api http://api.jquery.com/parent/ надеюсь, что это поможет, :) cheerios! –

+0

Попробуйте googling 'parent jquery', и ваш первый хит даст вам ссылку выше. – Cyclonecode

+0

Это также ** неправильный метод ** для использования, учитывая, что элемент '.modal-window' является ** не ** непосредственным родителем элемента' form'. –

ответ

2

Потому что вы не можете быть уверены в точности, как далеко целевой элемент из текущего элемента, и если вы хотите только найти один целевой элемент:

$(this).closest('.modal-window'); 
  • parent() выбирает непосредственный родительский элемент $(this), возвращает объект jQuery одного или ничего.
  • parents() выбирает все, соответствующие элементам предка $(this), возвращает объект jQuery одного, не более одного.
  • closest() выбирает первый элемент, соответствующий селектору в дереве DOM, над $(this), возвращает объект jQuery одного или ничего.
1

Вы можете использовать функцию .parents() и передать ей селектор, чтобы получить соответствующие ему родители, это означает, что если указанный селектор используется несколько раз родителями, он вернет всех соответствующих родителей.

$(this).parents('.modal-window'); 

http://api.jquery.com/parents/

+1

Нет; 'parents()' может создать объект jQuery ни одного, ни одного, ни другого. Он ищет все дерево DOM до элемента 'html'. Вы связались с API, вы должны перечитать: «... (... и до дерева DOM до элемента' '). Поскольку мы не предоставляем селекторное выражение, все предки являются частью возвращаемого объекта jQuery. Если бы мы предоставили один, будут включены только совпадающие элементы из них ». –

+0

@ DavidThomas Обновлено и +1 к вам: -/ – sg3s

+0

Огромное спасибо! знак равно –

Смежные вопросы