Как получить индекс элемента без 'this'? - PullRequest
0 голосов
/ 22 мая 2009

У меня есть форма, которая выглядит примерно так:

<div>
    <div class="contact">
        <h1>Person's name</h1>
        <!-- more stuff goes here -->
        <form method="post" action="myurl">
            <input type="submit" value="go" />
        </form>
    </div>
    <div class="contact">
        <h1>Another name</h1>
        <!-- more stuff goes here -->
        <form method="post" action="myOtherUrl">
            <input type="submit" value="go" />
        </form>
    </div>
</div>

Я использую jQuery для захвата события submit формы и мне нужно получить индекс div, содержащий кнопку, которая его отправила. Обычно я использовал бы функцию jQuery index() следующим образом:

var i = $(this).parents('.contact').index(this);

К сожалению, оператор this в этом случае ссылается на отправляемый form. Я думаю, что, возможно, есть что-то простое, что я упускаю, но мой разум рисует пробел на этом.

Ответы [ 2 ]

5 голосов
/ 22 мая 2009

Не усложняйте:

var parent = $(this).closest('div.contact'); // get containing DIV
var i = $('div.contact').index(parent); // get index relative to the rest
1 голос
/ 22 мая 2009
var i = $(this).parents('.contact:first').prevAll('.contract').length
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...