2012-07-22 22 views
0

也許不是問題的好標題,但我的問題正是這個。 我在頁面上有幾個DIV標籤,它們都以#result開頭,並繼續編號<div id="result22">,<div id="result33">等。現在我找到了一些不錯的jQuery事情要做,它按預期工作,但唯一的問題是如何添加已知數量的#result 這裏是代碼:結合div ID和this.ID

<script type="text/javascript"> 
    $(document).ready(function() { 
    $('.like').bind('click', function() { 
     $.get("/sng_like/"+this.id+"/", function(data) { 
     $('#result')[0].innerHTML=data; 
    }); 
    }); 
}); 
</script> 

我想要的this.id該值是#result的一部分獲得#result22例如。 我的JS知識是有限的,我已經嘗試$('#result'+this.id)[0].innerHTML=data;,但它不會工作。

謝謝, ģ

+0

您需要在輸入匿名獲取函數之前存儲對this的引用ñ。 – 2012-07-22 13:18:48

回答

2
$(document).ready(function() { 
    $('.like').bind('click', function() { 
     var item=$(this); 
     $.get("/sng_like/"+item.attr("id")+"/", function(data) { 
     $('#result'+item.attr("id")).html(data); 
    }); 
    }); 
}); 

在jQuery 1.7的,所述.on()方法是事件處理程序安裝到一個文件的優選方法。所以你可以考慮使用它。

如果使用的是1.7+版本,你的代碼可以改寫對函數使用這樣

$(function(){ 
    $(document).on("click",".like",function(){ 
     var item=$(this);   
     $.get("/sng_like/"+item.attr("id")+"/", function(data) { 
      $('#result'+item.attr("id")).html(data); 
     }); 
    }); 
}); 

$(function()$(document).ready(function()

+0

我可以說,它像一個魅力。非常感謝你。 – Goran 2012-07-22 13:24:06

+0

@Goran:不客氣。 :) – Shyju 2012-07-22 13:25:29

+1

可能應該使用'item.prop(「id」)',或者只是隱藏「id」值本身,因爲這是所有需要的。 – Pointy 2012-07-22 13:26:15

2

的簡寫形式您可以說:

$.get("/sng_like/"+$(this).attr("id")+"/", function(data) 
1
<script type="text/javascript"> 
    $(function() { 
     $('.like').on('click', function() { 
      var MyId=this.id; 
      $.get("/sng_like/"+MyId+"/", function(data) { 
       $('#result'+MyId).html(data); 
      }); 
     }); 
    }); 
</script>