2012-08-08 82 views
0

我正在寻找添加一个属性(href)到一个表的td。jQuery添加href字符串

我想jQuery会工作!

我需要帮助,请...

网址:http://mysite

原始表:

<table> 
    <thead> 
     <tr> 
      <th>Type</th> 
      <th>Name</th> 
      <th>Url</th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr class='Collection'> 
      <td>Collection</td> 
      <td>Collection1</td> 
      <td>/Collection1</td> 
     </tr> 
     <tr class='Site'> 
      <td>Site</td> 
      <td>Site1</td> 
      <td>/site1</td> 
     </tr> 
    </tbody> 
</table> 

那么结果将是:

<table> 
    <thead> 
     <tr> 
      <th>Type</th> 
      <th>Name</th> 
      <th>Url</th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr class='Collection'> 
      <td>Collection</td> 
      <td>Collection1</td> 
      <td><a href="http://mysite/Collection1">/Collection1</a></td> 
     </tr> 
     <tr class='Site'> 
      <td>Site</td> 
      <td>Site1</td> 
      <td><a href="http://mysite/site1">/site1</a></td> 
     </tr> 
    </tbody> 
</table> 
+2

td没有href属性。 – eugeneK 2012-08-08 12:09:17

+0

我试过$(“td:eq(2)”)。each(function(){(').appendTo('td') 但它没有工作 – user472285 2012-08-08 12:13:57

+0

你应该追加到$这个)。因为每个循环思考tds的列表 – eugeneK 2012-08-08 12:18:18

回答

0

假设你的意思是“将一个链接添加到表格的td“,试试这个:

$('table tbody tr').each(function() { 
    var cell = $('td:last', this), 
     url = $(cell).text(); 

    $(cell).wrapInner('<a href="' + url + '">'); 
})​ 

演示:http://jsfiddle.net/4hMey/1/

+0

你想要'wrapInner',而不是'wrap',因为'wrap'会使'a'标记父节点和'td'标签给子节点 – amurra 2012-08-08 12:30:08

+0

@amurra好的调用!修正了,谢谢! – 2012-08-08 12:33:33

0

给你想改变一个类的TD这样你就可以用jQuery轻松地选择它们,然后更改HTML内容。

<td class="MYCLASS"><a href="http://mysite/site1">/site1</a></td> 


$('.MYCLASS').each(function() { 
    var text = $(this).html(); 
    $(this).html('<a href="http://mysite' + text + '">' + text + '</a>'); 
}); 
0

如果你总是知道,最后TD需要的链接,那么你可以做这样的事情:

var urlTd = $('table tbody td:last-child'); 
urlTd.wrapInner('<a href="http://mysite' + urlTd.html() + '" />'); 

这里是展示它的工作一个jsFiddle