Javascript函数不会更改<pre> innerHTML?</pre>

时间:2012-06-27 00:15:55

标签: javascript jquery html blender

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

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

应该使它显示文件的第6行,但它仍然显示整个文件。如何将它分割成实际文件中的行?

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

3 个答案:

答案 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的元素。