这可能吗?我使用javascript,AJAX和JSON从Java servlet中提取数据,并且我想显示我在HTML中创建的javascript数组的元素(而不是在javascript中创建大块的HTML)。我知道我可以使用:
来破解我的HTML<script>document.write(arrayVar[0].firstName);</script>
但我真的想避免这种情况。在过去,我会在从服务器提取数据时使用JSTL和EL标签,但有没有类似的方法来完全使用javascript?我不反对使用外部图书馆 - 我只是不知道任何因为我没有大量的JS经验。
答案 0 :(得分:1)
您可以使用任何javascript模板库,例如http://mustache.github.com/或underscore.js附带的模板(或jquery模板(虽然我知道现在已弃用这些模板).Javascript模板可能与您一样神奇得到这个。
答案 1 :(得分:0)
我尽量避免使用document.write
,因为当通过AJAX以HTML格式返回此调用时,它会弄乱页面。
不幸的是,回答你的问题,可能不是 - 至少不会比你现在做的更好。相反,使用DOM方法可以避免使用document.write
,例如:
document.getElementById('test').innerHTML = arrayVar[0].firstName;
使用纯JavaScript,我没有看到任何其他类似于EL语法的方法。
答案 2 :(得分:0)
Saxon-CE(目前是Alpha版本)是一个XSLT 2处理器,具有浏览器交互的扩展 - 它以JavaScript实现,并以与JS库相同的方式部署。
有了这个,您可以编写一个模板来迭代JavaScript数组(通过调用JS函数)并将每个值插入到模板中的HTML literal-result元素中。然后,生成的HTML可以附加到或替换HTML DOM的任何部分。
模板可以在页面加载时运行,也可以链接到任何DOM事件。