2014-10-20 124 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/