Получить идентификатор родительского тега с определенным классом из формы - PullRequest
2 голосов
/ 08 декабря 2011

Я хочу получить идентификатор тега <a> с определенным классом, который является родительским (где-то выше в дереве DOM) формы при отправке формы

<div class="article">
                <div class="titre">Mon premier article de blog</div>
                <div class="resume" style="display: none; ">Ceci est le premier article de blog <a id="1" href="#">link</a></div>
               <div class="content">Ceci est effectivement mon premier article de blog 
                        <div class="nb_com">2 commentaires</div>
                           <div class="form">
                             <form method="post" action="">
                                <div class="form_text">
                                   <textarea name="com" id="com" rows="4" cols="122">... </textarea>
                                 </div>
                                 pseudo : <input type="text" name="pseudo" id="pseudo"> 
                           mail : <input type="text" name="mail" id="mail">  
                                <input type="button" value="Commenter" onclick="enregistre_com(this.form.com.value,this.form.pseudo.value,this.form.mail.value,this.parentNode.innerHTML">  
                            </form>
                   </div>
               </div>
            <div class="comment">
            </div>
        </div>

КогдаЯ нажимаю на кнопку и хочу получить значение идентификатора тега <a>, который находится в теге <div class="resume">.Вместо this.parentNode.innerHTML будет использоваться выражение javascript или jquery (это была просто цель теста)

Ответы [ 6 ]

3 голосов
/ 08 декабря 2011

Используйте .closest(), чтобы перейти к первому общему контейнеру (.article), а затем используйте .find(), чтобы найти <a> внутри элемента .resume ..

$(this).closest('.article').find('.resume a')[0].id;
0 голосов
/ 08 декабря 2011

Наконец, это выглядит как

    <input type='button' value='Commenter' onClick='enregistre_com(this.form.com.value,this.form.pseudo.value,this.form.mail.value,$(this).closest(\".article\").find(\".resume a\").attr(\"id\"))' />

У меня были проблемы с "и", потому что вся эта форма js инкапсулирована в php source

0 голосов
/ 08 декабря 2011
$('form input[type=button]').click(function(){
    var id = $(this).closest('.className').attr('id');
});
0 голосов
/ 08 декабря 2011

Я не уверен, какой именно элемент вы ищете именно в своем примере, но вам стоит изучить метод jQuery .parents([selector]) (см. Страницу API здесь )

0 голосов
/ 08 декабря 2011

это будет идентификатор вашего тега при нажатии кнопки ввода, даже с несколькими классами «резюме»:

id = $(this).closest('.article').find('a').attr('id');

вот рабочий пример: http://jsfiddle.net/JMEPj/2/

0 голосов
/ 08 декабря 2011
$('.form :button').click(function(){
    var id = $('.resume a').attr('id'); // 
    // the variable id contains the content of the id attribute
});

Возможно, вы захотите изменить селекторы в соответствии с вашей другой разметкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...