0

所以我在这里有一个简单的设置,我加载一个文件(一个搅拌机 .obj 文件)并显示它。然后我调用这个函数:

function parseFile(){
        var fileText = $('#file').html();
        var fileLine = fileText.split("\r\n");
        $('#file').html(fileLine[5]);
    }

这应该使它显示文件的第 6 行,但它仍然显示整个文件。如何让它像在实际文件中一样拆分行?

编辑:让每个人都知道我正在加载这样的文件:$('#file').load('model.obj');

4

3 回答 3

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()直接使用而不是将其加载到 a 中innerHTML并从那里读取......您甚至可以使用专用dataFilter于 blender.obj 文件类型。

于 2012-06-27T00:58:25.617 回答
0

也许这只是 '\n' 的问题

试试这个 :

var fileLine = fileText.split("\n");
于 2012-06-27T00:21:31.423 回答
0

尝试像这样包装你的调用$(parseFile());,并确保你的 HTML 实际上包含一个带有文件 id 的元素。

于 2012-06-27T00:51:13.607 回答