2012-11-15 65 views
3

如何在沒有tbody被jQuery添加到我的代碼中的情況下在jQuery中創建表格?見http://jsfiddle.net/r7BFq/使用jQuery創建沒有tbody的表格

$('table').html('<tr><td>A</td><td>B</td></tr>'); 
$('pre').text($('table').html());​ 

結果

<tbody><tr><td>A</td><td>B</td></tr></tbody> 

,我不希望出現這種情況。我想要:

<tr><td>A</td><td>B</td></tr> 
+4

這不是jQuery的錯:)他是一個好人 –

+0

誰的錯呢?我如何防止它? –

+1

只是不使用表然後..將它添加到一個div而不是..因爲默認情況下,由瀏覽器添加的tbody .. http://jsfiddle.net/sushanth009/r7BFq/1/ –

回答

2

爲什麼你會嘗試刪除tbody。您的瀏覽器正在嘗試添加有效html的部分,您就錯過了。這不好嗎?

+0

邊界崩潰不起作用,我認爲這是因爲tbody被添加。我做了一個border-collapse內聯風格。有用。所以我同意你的看法,我應該允許瀏覽器使我的代碼HTML有效。 –

0

試試這個演示,請http://jsfiddle.net/d8zVX/

報價 @undefined bruv:Actually browser creates the tbody element not jQuery

進一步閱讀:

Why do browsers still inject <tbody> in HTML5?

報價

由於歷史原因,某些元素甚至超出其內容模型給出的限制之外還有其他限制 。

表格元素不能包含tr元素,即使這些元素在技術上允許在根據 表格元素在本說明書中描述的內容模型中。 (如果tr元素 被放在標記的表內時,它實際上將意味着前一個TBODY 開始標記。)

這將適合需要:)

代碼

$('table').html('<tr><td>A</td><td>B</td></tr>'); 
var hulk = $('table').html().replace(/<\/?tbody>/g, '');; 
$('pre').text(hulk);​ 

的工作形象

enter image description here

+0

似乎並沒有在前期標籤實際上移除TBODY看到http://jsfiddle.net/8dsfs/ –

+0

@TimothyClemans它顯示了這個'​​一個​​乙'這是你想要的嗎?無論如何,其餘的瀏覽器都會添加'tbody'。 ':)'我在mac air上 - Lion O/S - safari瀏覽器,看不到'tbody' http://jsfiddle.net/d8zVX/':)' –

+0

我正在使用Google Chrome –

0

這完美的作品:

HTML:

<div id="table_sample"></div> 

JQUERY:

$('#table_sample').html('<tr><td>A</td><td>B</td></tr>'); 
$('#table_sample').text($('#table_sample').html()); 
+0

在測試邊界崩潰似乎不起作用 –

+0

這不是問題/要求的一部分。這段代碼完全符合要求。我可以理解它在整個代碼的上下文中是否完全適用於您,但對於所提問題而言,這是一個正確的答案。 – Jesse

+0

@Jesse你不能在'div'標籤內放入'tr'標籤,它不是有效的標記。 – Korikulum