Просто сделайте тег A display: block
.
table td a {
display: block;
}
http://jsfiddle.net/userdude/6VZ8t/
Или, если вы настаиваете на jQuery:
$('table td a').css('display','block');
http://jsfiddle.net/userdude/a2EAz/
EDIT
Поскольку я не смог найти способ выбора родительского TD для дочернего элемента A только для CSS, в этом решении используется jQuery:
function doTablePadding() {
$td = $('table td');
$td.has('a').css('padding','0');
padding = $td.not(':has(a)').css('padding-top') + " ";
padding += $td.not(':has(a)').css('padding-right') + " ";
padding += $td.not(':has(a)').css('padding-bottom') + " ";
padding += $td.not(':has(a)').css('padding-left') + " ";
$td.children('a').css('padding',padding);
}
doTablePadding();
$('table tbody').append("<tr><td>Stuff</td><td><p>Other stuff</p></td></tr>");
$('table tbody').append('<tr><td><a href="foo.html">Foo</a></td><td><a href="bar.html">Bar</a></td></tr>');
doTablePadding();
http://jsfiddle.net/userdude/Mekjg/1
Обратите внимание, что это работает с $(document).ready();
.
РЕДАКТИРОВАТЬ 2
Поскольку mu слишком короткие примечания, отрицательные поля должны работать (и не jQuery):
td {
padding: 5px;
background: #0ff;
border: 1px solid black;
}
td a {
display: block;
margin: -5px;
padding: 5px;
background: #f0f;
}
http://jsfiddle.net/ambiguous/seqpp/