所以我有一个简单的设置,我加载一个文件(一个blender .obj文件)并显示它。然后我调用这个函数:
function parseFile(){
var fileText = $('#file').html();
var fileLine = fileText.split("\r\n");
$('#file').html(fileLine[5]);
}
应该使它显示文件的第6行,但它仍然显示整个文件。如何将它分割成实际文件中的行?
编辑:大家都知道我正在加载这样的文件:$('#file').load('model.obj');
答案 0 :(得分:3)
对.load()
的调用是异步的。该方法将返回,但将来某些内容将可用。您需要使用回调:
$('#file').load('model.obj', function(response, status) {
alert("Now the file is loaded");
parseFile();
});
alert("Loading the file just began, nothing available by now");
或更多叙述,使用延迟界面:
$('#file').load('model.obj').then(parseFile);
如果您需要/想要解析服务器响应,最好直接使用$.ajax()
而不是将其加载到innerHTML
并从那里读取...您甚至可以使用blender.obj文件类型的专用dataFilter
。
答案 1 :(得分:0)
也许这只是'\ n'
的问题试试这个:
var fileLine = fileText.split("\n");
答案 2 :(得分:0)
尝试像$(parseFile());
这样包装您的调用,并确保您的HTML实际上包含id为file的元素。