我有HTML结构,其中一个td包含两个文本。我希望在另一个td中包装第二个文本并在第一个td后添加它。我已经完成了一项功能,但并没有完全正常工作。这是示例code
//Current html
<tr>
<td>first <a>second</a></td>
</tr>
//expected result
<tr>
<td>first</td>
<td><a>second</a></td>
</tr>
<script type="text/javascript">
$(function(){
var ff= [];
$('a').click(function(){
$('td a').each(function(index){
ff.push($(this).prop('outerHTML'));
$(this).remove();
$('td').eq(index).after().append('<td>'+ff[index]+'</td>')
})})})
</script>
答案 0 :(得分:1)
你可以在新的td中附加每个td的a并在原来的td之后添加:
$('a').click(function(){
$('td a').each(function(){
$(this).parent().after('<td></td>');
$(this).appendTo( $(this).parent().next() );
});
});
或在一行(更令人困惑,也许:)):
$('td a').each(function(){
$(this).appendTo( $(this).parent().after('<td></td>').next() );
});
答案 1 :(得分:1)
$('a').click(function(){
$('td a').each(function(index){
$(this).insertAfter($(this).parent()).wrap('<td />');
});
});