2013-04-09 56 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();