2011-09-28 64 views
2

我不知道我是否問正確的問題。但我的應用程序嚴重依賴於Javascript和jQuery來創建HTML文檔。所以我有很多這個「jQuery(」),然後有很多div.attr(「id」,「123」)。Javascript,jQuery模式來創建HTML文檔

那麼,有沒有更好的方法來做到這一點,或一些設計模式來處理這個?

非常感謝。

+0

如果您希望在瀏覽器中使用經過驗證且可用的技術返回到IE6,請查看XSLT。您可以通過xmlHTTPRequest加載XML文檔,應用轉換將其轉換爲HTML並將其插入到文檔中。它只需要幾行代碼(AJAX部分也只有幾行代碼,如果必須的話,請使用jQuery)。它具有良好的文檔記錄,可在所有現代瀏覽器中使用,瀏覽器本地化速度非常快,不需要額外的庫,因此非常便於攜帶。它還受到大量非瀏覽器環境的支持。 – RobG

+0

XSL轉換的一些有用鏈接:[符合W3C標準的瀏覽器的Mozilla文檔](https://developer.mozilla.org/en/Using_the_Mozilla_JavaScript_interface_to_XSL_Transformations), [Microsoft和IE的克隆文檔](http://msdn.microsoft.com/zh-cn/library/default.aspx)。 com/en-us/library/ms762796(VS.85).aspx) – RobG

+1

哦,夥計,別讓我開始使用XSLT。 Firefox不支持自動轉換的HTML(http://stackoverflow.com/q/2175678/901048),Chrome不支持@includes(http://stackoverflow.com/q/2042178/901048),而IE似乎做任何事情都是這樣。更不用說,它似乎使用自己獨特的語言,像使用其他編程語言一樣,使用諸如「choose」和「when」之類的語法而不是「case/switch」或「if/then」。 XSLT是一個不錯的主意,它沒有起飛,並且多年來一直被瀏覽器開發者忽略 – Blazemonger

回答

3

是,jQuery Templates。他們更容易建立與jQuery的HTML,你可以這樣做:

<script id="movieTemplate" type="text/x-jquery-tmpl"> 
    <li><b>${Name}</b> (${ReleaseYear})</li> 
</script> 

<ul id="movieList"></ul> 

<script> 
var movies = [ 
    { Name: "The Red Violin", ReleaseYear: "1998" }, 
    { Name: "Eyes Wide Shut", ReleaseYear: "1999" }, 
    { Name: "The Inheritance", ReleaseYear: "1976" } 
]; 

/* Render the template with the movies data and insert 
    the rendered HTML under the "movieList" element */ 
$("#movieTemplate").tmpl(movies) 
    .appendTo("#movieList"); 
</script> 

並獲得:

  • 紅色小提琴(1998)
  • 大開眼戒(1999)
  • 傳承(1976)
+0

...對於給定值「更容易」。如果除了基本的Mad-Libs風格的模板之外,您還想做其他任何事情,那麼jQuery的'tmpl'可能會引起混亂。另外,它們仍被認爲是測試版,所以文檔幾乎沒有它應該的那麼好。我不反對他們,關心你 - 但有效地使用它們就像學習一種全新的語言。 – Blazemonger

+0

@ mblase75如果您的應用程序嚴重依賴js作爲問題提及,那麼學習如何使用它可能是值得的。 – amosrivera

+0

@amosrivera - 更好地學習由XSLT等瀏覽器本機支持的現有成熟技術。 – RobG