2010-06-08 26 views
1

此代码打印输出如下... 代码如何获得正确的表格格式? jQuery的疑问句

$('#calendar').append('<table><thead><tr>'); 
    var i; 
    for(i=0;i<=6;i++) 
     { 
      $('#calendar').append('<td>'+week[i]+'</td>'); 
     } 
    $('#calendar').append('</tr></thead>'); 
    $('#calendar').append('</table>'); 

输出

<section id="calendar"><table><thead><tr></tr></thead></table><td>Sunday</td><td>Monday</td><td>Tuesday</td><td>Wednesday</td><td>Thursday</td><td>Friday</td><td>Saturday</td></section> 

但我希望在这个结构中东西..

<table><thead><tr><td>...</td></tr></thead></table> 
+0

你检查错误控制台?周定义是否正确?因为它好像脚本忽略了* for循环中的那一行。 – 2010-06-08 09:07:42

+0

没有错误。 我定义了这样的星期 var week = [“Sunday”,“Monday”,“Tuesday”,“Wednesday”,“Thursday”,“Friday”,“Saturday”]; – sakthig 2010-06-08 09:18:29

回答

1

jQuery追加元素,而不是文字文本......因为它会立即附加到DOM,就像你现在正在做的那样,你会得到一些非常有趣的行为,因为你从未封闭的标签开始它关闭你以防止错误)。

你只需要改变你的方法了一点,但这样做的权利也意味着即使代码,就像这样:

var row = $('<table><thead><tr></tr></thead></table>').find('tr'); 
for(var i=0; i<=6; i++) { 
    $('<td />', { text: week[i] }).appendTo(row); 
} 
row.end().appendTo('#calendar');​ 

You can view a working demo here,这造成使用$(html),一个文档片段表,我们然后.find()行,并保持一个方便的引用它,创建一个使用$(html, props)<td>元素之一,并将它们添加到使用.appendTo()行。之后,我们已经添加了所有这些,调用.end()到链改变什么是.find()之前被称为......在这种情况下,整个<table>,然后只是表追加到#calendar元素:)

+0

谢谢尼克。我只是一个初学者,它正在gr8有一些帮助。 – sakthig 2010-06-08 16:36:41

+0

@Sakti:Welcome :)这是否解决了您的问题? – 2010-06-08 16:38:50

+0

是的,它的工作完美 但是当我试图做类似之力工作东西.. VAR daym; daym = days [m]; 变种CAL = $( ' ').find(' TR'); 如果(X> 0){ $( '',{ ,列跨度:X})。appendTo(CAL); } var cd = 1; (cd <= daym) 如果(x = 6) x = 0; $('').appendTo(cal); ('',{text:j + 1,id:j + 1})。appendTo(cal); cd ++; x ++;如果(x!= 6){var_dd = 6-cd; $('',{ ,colspan:rd})。appendTo(cal); }} 其 代码打印压延.. 我设法在一个tr标签 打印1至30,但每星期我想在不同的tr标签.. 请看看这个..如果乌拉圭回合免费.. – sakthig 2010-06-09 12:00:38

0

我认为在jQuery中追加标签,rath呃不只是文字。你有没有尝试检查中间结果?您的第一行已经导致<table><thead><tr></tr></thead></table>被追加到该部分。

您可以建立要追加整个字符串,然后在一次调用其追加。

+0

我可以使用html来做到这一点..使用jQuery的目的是增加功能和减少编码行。 ;) – sakthig 2010-06-08 09:16:36

+0

我没有看到如何构建字符串将比你尝试追加更多的代码。 jQuery保存了大量的代码,但是它不能为每一件你已经可以用普通的JavaScript做的小事情提供一些辅助方法。这一个可能是有趣的使用附加:http://www.learningjquery.com/2009/03/43439-reasons-to-use-append-正确 – OregonGhost 2010-06-08 10:12:00