在表格单元格中创建动态href

时间:2012-08-13 08:49:45

标签: jquery dynamic html-table 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);
}

使用我想要的文本正确填充单元格,但单元格不可单击。我在控制台中没有出现任何错误。知道我做错了吗?

2 个答案:

答案 0 :(得分:4)

您无法在<tr>标记上设置href属性,并希望它像<a>标记一样工作。相反,您需要在<a>标记内添加<tr>标记。你可以这样做:

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);
}

答案 1 :(得分:0)

尝试:

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