2014-10-20 163 views
0

我想找到点击按钮value.here是我的htmlcode,我无法得到,但总是得到第一个。获取点击按钮值jquery

<div id="addSentiment" class="dialogs"> 
    <div id="1" class="dialogs"> 
     <div class="itemdiv dialogdiv"> 
      <div class="user"> 
       <img src="assets/avatars/avatar1.png" alt="Alexas Avatar"> 
      </div> 
      <div class="body"> 
       <div class="time"> <i class="ace-icon fa fa-clock-o"></i> 
    <span class="green">Date : 10/01/2014</span> 

       </div> 
       <div class="name"> <a href="index.html#">[email protected]</a> 

       </div> 
       <div id="cat_1" class="text">category : Scheduling 
        <br> 
       </div> 
       <div id="op_1" class="text">ddd word/phrase : providing solutions 
        <br> 
       </div> 
       <div id="feature_1" class="text">ddd word/phrase : listen to 
        <br> 
       </div> 
       <div class="text"> 
        <input type="hidden" value="1" name="hd"> 
       </div> 
       <div class="tools"> <a id="edit_1" class="btn acebtn btn-minier btn-info" href="#"> 
                      <i class="icon-only ace-icon fa fa-share"></i> 
                     </a> 

       </div> 
      </div> 
     </div> 
    </div> 
    <div id="2" class="dialogs"> 
     <div class="itemdiv dialogdiv"> 
      <div class="user"> 
       <img src="assets/avatars/avatar1.png" alt="Alexas Avatar"> 
      </div> 
      <div class="body"> 
       <div class="time"> <i class="ace-icon fa fa-clock-o"></i> 
    <span class="green">Date : 10/01/2014</span> 

       </div> 
       <div class="name"> <a href="index.html#">[email protected]</a> 

       </div> 
       <div id="cat_2" class="text">category : Scheduling 
        <br> 
       </div> 
       <div id="op_2" class="text">dddd : providing solutions 
        <br> 
       </div> 
       <div id="feature_2" class="text">ddddddde : listen to 
        <br> 
       </div> 
       <div class="text"> 
        <input type="hidden" value="2" name="hd"> 
       </div> 
       <div class="tools"> <a id="edit_2" class="btn acebtn btn-minier btn-info" href="#"> 
                      <i class="icon-only ace-icon fa fa-share"></i> 
                     </a> 

       </div> 
      </div> 
     </div> 
    </div> 
    <div id="3" class="dialogs"> 
     <div class="itemdiv dialogdiv"> 
      <div class="user"> 
       <img src="assets/avatars/avatar1.png" alt="Alexas Avatar"> 
      </div> 
      <div class="body"> 
       <div class="time"> <i class="ace-icon fa fa-clock-o"></i> 
    <span class="green">Date : 10/01/2014</span> 

       </div> 
       <div class="name"> <a href="index.html#">[email protected]</a> 

       </div> 
       <div id="cat_3" class="text">category : Scheduling 
        <br> 
       </div> 
       <div id="op_3" class="text">Opinion word/phrase : providing solutions 
        <br> 
       </div> 
       <div id="feature_3" class="text">Feature word/phrase : listen to 
        <br> 
       </div> 
       <div class="text"> 
        <input type="hidden" value="3" name="hd"> 
       </div> 
       <div class="tools"> <a id="edit_3" class="btn acebtn btn-minier btn-info" href="#"> 
                      <i class="icon-only ace-icon fa fa-share"></i> 
                     </a> 

       </div> 
      </div> 
     </div> 
    </div> 
</div> 

我尝试下面的代码jQuery中

$(".dialogs .itemdiv .tools").live("click",function(e){ 
    e.preventDefault(); 
alert('clicked on edit'); 

var n = $('.dialogs .itemdiv .tools a').attr('id'); 
    alert(n); 
}); 

我在这里使用现场,因为我得到上面的html使用jQuery的追加方法。

回答

0

live jQuery中的更高版本已经过时 - 但要解决您的问题,您需要使用的this

$("#addSentiment").on("click", ".dialogs .itemdiv .tools", function(e){ 
    e.preventDefault(); 
    alert('clicked on edit'); 

    var n = $("a", this).attr('id'); 
    alert(n); 
}); 
+0

你所提到的,不仅使用live.I累“开”,但没有得到现场使用,但我得到所以我用'生活'。 – aniltc 2014-10-20 20:28:12

+0

你能否建议另一种方式。因为如果我们使用append,我们不会得到点击事件,这是我使用'live'的主要原因 – aniltc 2014-10-20 20:36:33

+0

'live'已被弃用:1.7 |删除:1.9代替使用委托。 – 2014-10-20 20:38:25

0

jQuery选择捕捉其内容的第一场比赛的情况下。

为了赶上第n次的比赛,你需要使用n-th child selector,就像这样:

$(".dialogs .itemdiv .tools:nth-child(2)") 
0

我不熟悉现场的方法,但你应该能够做到像下面这样:

function addHandlers() { 
    $(".dialogs .itemdiv .tools a").each(function() { 
    $(this).click(function() { 
     alert('clicked on edit'); 
    );  
    }); 
} 

function yourAppendFunction() { 
    //your append code 
    //add call to a function that will create your event handlers 
    addHandlers(); 
} 

的。每个方法通过符合选择条件的每一个项目开始运行,然后我们使用函数内this关键字来引用我们正在努力。将它放入一个函数中,在你追加这些项目之前,我们不会调用这些函数,以确保当你尝试添加你需要的处理程序时,html就会存在。

API参考:

每个方法:http://api.jquery.com/each/

点击方法:http://api.jquery.com/click/