2013-04-09 92 views
0

我有一個動態列表創建,需要能夠選擇數據保存在兩個span標籤點擊。到目前爲止我的代碼是:jQuery從範圍內選擇文本

var app_data="<li class='auto' 
    data-short='"+this['dish_short']+"' 
    data-desc='"+this['dish_desc']+"' 
    data-dish_id='"+this['dish_id']+"'> 
     <span class='m_name'>"+this['dish_name']+"</span> - £<span 
     class='m_price'>"+this['dish_price']+"</span> 
</li>"; 

請注意,在代碼中的換行符是使其更具可讀性,而不是它是在同一行所有。

我想要做的是從每個span類中選擇文本,儘管到目前爲止使用下面的代碼選擇所有的文本,例如。菜名和菜價。

代碼:

$('li').click(function(){ 
    //alert($('li', this).data('short')); 
    var m_name=$(this, 'span .m_name').text(); 
    console.log(m_name); 
    }); 

回答

3

對於動態列表創建使用.on到assing點擊或其他事件。

$(document).on('click','li',function(){ 
    //code here 
}); 
+0

可能事件綁定* *後的元素被添加到DOM。 – VisioN 2013-04-09 09:12:07

+0

@VisioN和爲那種可能性我給OP解決方案關於不要每次重複函數調用dom後添加... – 2013-04-09 09:13:08

+0

這與以上評論通過@VisioN - 謝謝 – Sideshow 2013-04-09 09:14:36

3

上下文部分變爲作爲第二個參數(即$(selector, context)),以及m_name類設置爲<span>元素,所以不應該有在選擇任何空間:

var m_name = $("span.m_name", this).text();