0

我的问题是这样的:

我正在尝试在表格中创建一些单元格,这些单元格将由我从 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);
}

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

4

2 回答 2

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);
}
于 2012-08-13T09:50:09.877 回答
0

尝试:

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

于 2012-08-13T08:53:26.710 回答