2015-01-04 72 views
0

我有一个变量可能包含多个逗号分隔值。我想在无序列表中动态显示lis。如何在jquery中获取动态添加的li的文本

当每个li被点击时,我需要获取li中的文本以便在稍后的函数中使用。我试图在下面做不成功。

请单击时帮助我获取每个li的文本。

function viewUploadedFiles() { 
var fpath = $("#filePathList").val(); 
var fnameVal = $("#fileNameList").val(); 
var display = displayFiles(fnameVal); 
$("#upload_FileList").html(display); 
} 

function displayFiles(fname) { 
    var septor = ','; 
    var selected="<ul class='file_List' >"; 
    if (fname.indexOf(septor) >= 0) { 
     var fnameArray = fname.split(septor); 
     $.each(fnameArray, function(index,value) { 
      alert(index+" Files ===> "+value); 
       selected+='<li class="file_list_line" id="file_ID"><span class="text">'+value+'</span><input type="button" value="Delete File" onclick="deleteFile()"></li>'; 
     }); 

    } else { 
     selected+='<li class="file_list_line" id="file_ID"><span class="text">'+fname+'</span><input type="button" value="Delete File" onclick="deleteFile()"></li>'; 
    } 
    selected+='</ul>'; 
    return selected; 
} 

function deleteFile(){ 
alert($(this).text()); 
} 

<div id="upload_FileList" align="left"> 
</div> 
+0

你可以把一个JSfuddle,所以我们有你想什么来实现,并在那里它的失败工作的例子? – vimes1984 2015-01-04 12:02:20

+0

http://jsfiddle.net/login2app/J5nCS/506/ – user1489337 2015-01-04 12:32:11

回答

1

我对你用来让它在jsfiddle上工作的脚本做了一个小改动。您遇到的问题是,单击按钮时deleteFile()函数不可用。删除内联函数调用并使用jquery使用委托注册调用可修复您的问题。

假设你把生成的HTML标记列表里面,你需要把它添加到您的脚本。

$('#upload_FileList').on('click', 'li', function(){ 
    $(this).css('color', 'red'); 
    console.log($(this).text()) 
}); 

这只是触发每当点击upload_filelist UL内的LI的功能。

这里的运作小提琴 - http://jsfiddle.net/t99sm54q/1/

相关问题