从表单中获取具有特定类的父标记的id

时间:2011-12-07 22:32:15

标签: javascript jquery forms

我希望在提交表单时获取<a>标记的id,其中包含一个特定的类,它是表单的父级(在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">标记的ID值。 javascript或jquery表达式将取代this.parentNode.innerHTML(它只是测试目的)

6 个答案:

答案 0 :(得分:3)

使用.closest()转到第一个共享容器( .article ),然后使用.find()查找<a>内的.resume {1}}元素..

$(this).closest('.article').find('.resume a')[0].id;

答案 1 :(得分:0)

$('.form :button').click(function(){
    var id = $('.resume a').attr('id'); // 
    // the variable id contains the content of the id attribute
});

您可能希望根据其他标记更改选择器。

答案 2 :(得分:0)

当点击输入按钮时,这将是您的标记的ID,即使有多个“简历”类:

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

这是一个工作示例: http://jsfiddle.net/JMEPj/2/

答案 3 :(得分:0)

我不确定您在示例中特别寻找哪个元素,但您应该考虑使用jQuery的.parents([selector])方法(请参阅API页面here

答案 4 :(得分:0)

$('form input[type=button]').click(function(){
    var id = $(this).closest('.className').attr('id');
});

答案 5 :(得分:0)

最后,它看起来像

    <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源中