0

我有一个 td 包含两个文本的 HTML 结构。我想将第二个文本包装在另一个 td 中,并在第一个 td 之后附加它。我做了一个函数,但不能正常工作。这是示例代码

//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>
4

2 回答 2

1

您可以将每个 td 的 a 附加到一个新的 td 中并在原始 td 之后添加:

$('a').click(function(){

        $('td a').each(function(){
            $(this).parent().after('<td></td>');

            $(this).appendTo( $(this).parent().next() );


            });
        });

工作jsfiddle

或一行(更令人困惑,也许:)):

$('td a').each(function(){
            $(this).appendTo( $(this).parent().after('<td></td>').next() );
});
于 2013-06-25T12:29:55.213 回答
1
$('a').click(function(){
    $('td a').each(function(index){
        $(this).insertAfter($(this).parent()).wrap('<td />');
    });
});

jsFiddle

于 2013-06-25T12:32:27.450 回答