2011-12-07 84 views
0

這可能嗎?我正在使用javascript,AJAX和JSON從Java servlet中提取數據,並且想要顯示在我的HTML中創建的javascript數組的元素(而不是在javascript中創建大塊HTML)。我知道我可以使用我的html:在HTML中顯示Javascript變量沒有內嵌腳本標記

<script>document.write(arrayVar[0].firstName);</script> 

但我真的很想避免這種情況。在過去,我會在從服務器提取數據時使用JSTL和EL標記,但是有沒有類似的方法可以純粹用JavaScript來完成這項工作?我不會反對使用外部庫 - 我只是不知道任何一個,因爲我沒有很多JS的經驗。

回答

1

你可以使用任何JavaScript模板庫像http://mustache.github.com/或那些附帶underscore.js(或jQuery的模板(雖然我明白,這些都是現在不建議使用)。使用Javascript模板大概爲神奇,你會得到這個。

+0

jQuery模板不被棄用*本身,它們作爲單獨的庫保留。 – zzzzBov

0

儘量避免使用document.write,因爲當通過AJAX在HTML中返回此調用時,它可能會弄亂頁面。

不幸的是,要回答你的問題,可能不是 - 至少不會比你現在做的更好。 document.write可以通過作爲替代使用DOM方法,如要避免:

document.getElementById('test').innerHTML = arrayVar[0].firstName; 

使用純JavaScript,我看不出這樣做的任何其他方式將類似於EL語法。

+0

我有點相同。我希望在那裏或者最好的情況下可能會有一些神奇的圖書館:一種純粹用於JS的方式,我從來不知道。 – ryandlf

0

Saxon-CE(目前是Alpha版本)是一款XSLT 2處理器,具有瀏覽器交互擴展功能 - 它以JavaScript實現,並以與JS庫相同的方式部署。

有了這個,您可以編寫一個模板來迭代JavaScript數組(通過調用JS函數)並將每個值插入模板中的HTML文字結果元素。然後可以將生成的HTML附加到或替換HTML DOM的任何部分。

模板既可以在頁面加載時運行,也可以鏈接到任何DOM事件。