属性变量仅显示第一个单词

时间:2014-11-10 16:23:17

标签: javascript jquery html

我有一个listview,它动态填充了我正在开发的商店定位器的优惠。 listview完美地填充了带有商品标题和商品描述的格式化列表。

我正在尝试创建一个已保存的功能,用户可以保存要约以供离线使用。为此,我将数据库值传输到动态列表视图的属性中,我可以将它们放入变量中以便在sessions / localstorage等中使用。

这是我的js代码,它定义了属性并显示了listview。

var output1 = '';                                                                                                                                                                                                                     
function getoffers(data) {                                                                                                                                                                                                            
    var data = JSON.parse(data);                                                                                                                                                                                                      
    console.log(data);                                                                                                                                                                                                                
    $.each(data, function(index, value){        
        output1 += '<li offertitle='+value.offer_title+' offer-desc='+value.offer_desc+' offer-expiry='+value.expiry_date+'><a href="#""><h1>'+value.offer_title+'</h1><p>'+value.offer_desc+'</p><p class="ui-li-aside"><b>Expiry Date:</b>'+value.expiry_date+'</p></a></li>';                                                                                                                       
    });                                                                                                                                                                                                                               
    $('#offerlist').html(output1).listview().listview('refresh');                                                                                                                                                                     
} 

如您所见,我显示数据库值将它们分配给动态列表视图行中的属性。

我在点击列表视图行时创建变量,我在其中提醒每个变量进行测试。这是我发现变量只有第一个单词(应该是一个段落)的地方。

EG。应该说&#34;买一送一,#34;。只返回&#34;购买&#34;在变量中。

$("#offers ul").on("click", ">li", function(event, ui) {                                                                                                                                                                           
    var offertitle = $(this).closest('li').attr('offertitle'); 
    var offerdesc = $(this).closest('li').attr('offer-desc');
    var offerexpiry = $(this).closest('li').attr('offer-expiry'); 

    alert(offertitle);
    alert(offerdesc);
    alert(offerexpiry);                                                                                                                                                                                       
}); 

1 个答案:

答案 0 :(得分:2)

您没有引用该属性,因此只将第一个单词视为其中的一部分。

您需要将其设置为:

output1 += '<li offertitle="'+value.offer_title+'" offer-desc="'+value.offer_desc+'" offer-expiry="'+value.expiry_date+'"><a href="#""><h1>'+value.offer_title+'</h1><p>'+value.offer_desc+'</p><p class="ui-li-aside"><b>Expiry Date:</b>'+value.expiry_date+'</p></a></li>';

顺便说一句,您不应该定义自己的自定义属性,而是使用HTML data attributes