在没有内联脚本标记的HTML中显示Javascript变量

时间:2011-12-07 03:57:01

标签: java javascript html

这可能吗?我使用javascript,AJAX和JSON从Java servlet中提取数据,并且我想显示我在HTML中创建的javascript数组的元素(而不是在javascript中创建大块的HTML)。我知道我可以使用:

来破解我的HTML
<script>document.write(arrayVar[0].firstName);</script>

但我真的想避免这种情况。在过去,我会在从服务器提取数据时使用JSTL和EL标签,但有没有类似的方法来完全使用javascript?我不反对使用外部图书馆 - 我只是不知道任何因为我没有大量的JS经验。

3 个答案:

答案 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事件。