2012-01-09 88 views
0

我有一個簡單的html代碼段,我在運行時添加到文檔中。我正在使用jQuery的選擇器,但這與我面臨的問題無關。使用Javascript的HTML代碼注入

使用: $( 「#elementID」)HTML()

顯示的代碼,但沒有應用CSS。由於CSS已經被加載和應用,這種行爲是有意義的。

我的問題是: - 爲了在html內容更改後重新應用CSS,是否需要「刷新」DOM元素? - 或者是否有一種方法可以在將JavaScript添加到DOM元素之前將JavaScript中的代碼應用到CSS上?

我知道各種JS \ html模板庫,但在這個階段我試圖最小化依賴額外的庫,特別是因爲我生成的\片段的片段非常簡單,我不介意他們留在JS代碼

Jamil

+0

沒有它沒有任何意義,CSS規則「運行時」應用(CSS不改怎麼瀏覽器顯示HTML,它的定義由它) – Hannes 2012-01-09 11:16:12

回答

1

你錯了。始終應用CSS(運行時) - 請參閱jsFiddle示例。你搞砸了別的東西。

+0

我很簡單地將HTML內容附加到DOM元素。使用以下內容:$(「#」).html(); HTML內容包含jQuery標記,但仍然顯示器輸出不包含jQuery樣式。如果我創建了一個DOM元素,並將其添加到頁面中的其中一個元素而不是注入HTML,它會起什麼作用? – Jamil 2012-01-09 11:29:06

+0

我試過jsFiddle,但仍然得到不正確的渲染。你可以看看我想呈現的代碼。在jsFiddle中:$('div#new')。html('

'); – Jamil 2012-01-09 11:46:31

+0

好吧,看來我面臨的問題是jQuery相關而不是CSS \ Javascipt。我正在關閉這個問題,並開始一個新的與jQuery問題 – Jamil 2012-01-09 12:04:25

0

你確定css沒有被應用嗎?因爲它應該是。如果你添加一個新的元素到DOM,它應該從你已經加載的任何CSS文件採取樣式。你怎麼申請的CSS?

+0

我不想應用CSS。我將html注入到一個現有的DOM元素中。這個注入的代碼被顯示出來,但沒有拿起它應該的任何CSS屬性。我嘗試通過在html中對其進行硬編碼來在單獨的頁面中測試生成的html代碼,並獲取所有CSS操作。這個問題只發生在我使用以下代碼動態注入html代碼時:$(「#」).html() – Jamil 2012-01-09 11:34:28

+0

好吧,看來我面臨的問題是jQuery相關而不是CSS \ Javascipt。我正在關閉這個問題,並開始一個新的與jQuery問題 – Jamil 2012-01-09 12:04:36

0

.trigger('create')的元素將迫使元素的重新渲染,如果需要