2012-08-13 36 views
0

我的問題是這樣的:創建表格單元格內的動態HREF

我想創建一個表,這將是我從XML文檔中提取數據填充一些細胞,但我也希望這些細胞成爲超鏈接。我這樣做:

var table = $('<table></table>').addClass('table'); 
for(i=0;i<x.length;i++){ 
    var row = $('<tr></tr>').text(x.item(i).getAttribute("id")).attr('href', 'www.my-url.com/'+x.item(i).getAttribute("id")); 
    table.append(row); 
} 

單元格填寫正確與我想要的文本,但單元格不可單擊。我在控制檯中沒有任何錯誤。任何想法我做錯了什麼?

+0

你能告訴我們什麼'x'是一些標記嗎? – 2012-08-13 08:53:08

+0

從你發佈的內容我建議你不要在單元格中添加'a'元素?但這是一個猜測,基於幾乎沒有信息。 – 2012-08-13 08:53:10

+1

您無法在''標籤上設置href屬性,並希望它像鏈接一樣工作。如果你希望它像鏈接一樣工作,你必須在''內放置一個''標籤。 – jfriend00 2012-08-13 08:56:04

回答

3

你不能設置在<tr>標籤的href屬性,並期望它像一個<a>標籤工作。相反,您需要在<tr>標籤內放置一個<a>標籤。你可以這樣做:

var table = $('<table class="mytable"></table>'); 
for (var i = 0; i < x.length; i++) { 
    var txt = x.item(i).id; 
    var url = 'http://www.my-url.com/' + txt; 
    var row = $('<tr></tr>').html('<a href="' + url + '">' + txt + '</a>'); 
    table.append(row); 
} 

該方法創建HTML並讓瀏覽器解析它。你也可以直接創建這樣的元素:

var table = $('<table class="mytable"></table>'); 
for (var i = 0; i < x.length; i++) { 
    var txt = x.item(i).id; 
    var url = 'http://www.my-url.com/' + txt; 
    var row = $('<tr></tr>') 
    var link = document.createElement("a"); 
    link.href = url; 
    link.innerHTML = txt; 
    row.append(link); 
    table.append(row); 
} 
+0

非常感謝!這工作!:) – tk66 2012-08-13 09:58:40

0

嘗試:

var row = $('<tr></tr>').html(....