2013-05-13 75 views
0

我有一个表,我想换表行,但问题是我不知道什么包裹的那些家伙了......如果我使用<div><span><tr><td> ..他们都打破了我的确认。

那么用什么我可以包装我的表行没有破坏验证换行而不破坏HTML验证?

这就是我希望它看起来只有问题是我的HTML无效。
Fiddle Here

我使用我的生成以下包装jQuery的

$(document).ready(function(){ 
$('tr:first').nextUntil('.section2').andSelf().addClass('section1'); 
$('tr:nth-child(3)').removeClass('section1').addClass('section2'); 
$('.section2').nextUntil('.section3').removeClass('section1').addClass('section2'); 

//Lets wrap those two sections inside divs ... 
//This will obviously break my validation:( 
$('tr.section1').wrapAll('<div class="section_box1"></div>'); 
$('tr.section2').wrapAll('<div class="section_box2"></div>'); 
}); 
+4

为什么把它们包装在任何东西?你可以给每一行一个特定的类吗?另外为什么表在第一位? – 2013-05-13 19:12:31

+0

不能这样做,因为我将使用slideUp/slideDown效果... – 2013-05-13 19:13:28

+6

只有4个元素可以包含表格行:'thead','tbody','tfoot'和'table'。其中,只有一个'thead'和'tfoot'可以存在于一个表中,因此'tbody'是包含'tr'元素的唯一选项。您应该只是滑动下拉/滑动单个行,或者考虑不对表格行进行动画处理,因为这会成为越野车**。 – 2013-05-13 19:14:32

回答

5

由于@KevinB在评论中写道,tbody元素实际上是在包装元素中查表表格行的唯一方法。在静态标记,这可能是:真的没有必要

<table class="form-table"> 

<tbody class="bg"> 
<tr valign="top"> 
<th scope="row">Hide Menu Background:</th> 
<td> 
<input type="checkbox" value="value1" name="name1"/> 
</td> 
</tr> 
<tr valign="top"> 
<th scope="row"> 
Menu Background: 
</th> 
<td> 
<input type="file" name=""/> 
</td> 
</tr> 
</tbody>  

<tbody class="other"> 
<tr valign="top"> 
<th scope="row">Hide Sidebar:</th> 
<td> 
<input type="checkbox" value="value2" name="name2"/> 
</td> 
</tr> 
<tr valign="top"> 
<th scope="row">Hide Site Title:</th> 
<td> 
<input type="checkbox" value="value3" name="name3" /> 
</td> 
</tr> 
</tbody> 

</table> 

tbody元素的class属性,但它们可以被用来做造型更容易一些。

或者,您可能会认为这两个部分在逻辑上不是同一个表的逻辑部分,而是使用两个单独的table元素。如果您希望第2列从不同的位置开始,这才是真正的唯一方法。

+0

你们俩都是对的!现在我正在试验动画,它看起来就像魅力一样。投票+ – 2013-05-13 20:52:22

0

我会先通过只删除开始与表开始。当显示实际的“表格数据”时,最好只使用表格。

<h3 class="title">General Settings:</h3> 
<div class="section_box1"> 
    Hide Menu Background: <input type="checkbox" value="value1" name="name1"/><br /> 
    Menu Background: <input type="file" name=""/> 
</div> 
<div class="section_box2"> 
    Hide Sidebar: <input type="checkbox" value="value2" name="name2"/><br /> 
    Hide Site Title: <input type="checkbox" value="value3" name="name3" /> 
</div> 

查看jsfiddle

这种方式可以根据需要更自由地添加类/包装,并且仍然符合HTML标准。

+0

该表将由Wordpress设置API动态生成,所以很不幸,我无法对它做任何事情...... – 2013-05-13 19:23:14

+0

@DejoDekic从技术上讲,如果您必须使用javascript将表转换为div,尽管这非常* hack'n斜线* – 2013-05-13 19:25:22

+1

听起来像是一团糟,然后 – 2013-05-13 19:27:12