2012-08-13 112 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(....