2010-06-08 24 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