2012-06-01 2 views
1
<table border="2"> 
    <tr><td>one</td><td>two</td></tr> 
    <tr><td>one</td><td>two</td></tr> 
    <tr><td colspan="2" id="new" >add new</td></tr> 
</table> 

$('#new').click(function(){ 
    $('#new').append("<tr><td>one</td><td>two</td></tr>"); 
}) 

Теперь, если я нажимаю "добавить новый", то это делает:Как добавить после или другое решение?

one | two 
one | two 
add new 
one two 

Как я могу сделать:

one | two 
one | two 
one | two 
add new 

Прямой эфир:http://jsfiddle.net/tg5qD/

+3

'$ ('# новый'). Родителя(). Перед ("...")' – Esailija

+0

@Esailija Если вы вставьте это в качестве ответа, я буду голосовать за вас? Идите на bruv B-) –

+0

@Esailija добавьте новый ответ –

ответ

1

Вы можете либо изменить ваш JavaScript-код выглядит следующим образом:

$('#new').click(function(){ 
    $('#new').parent().before("<tr><td>one</td><td>two</td></tr>"); 
}) 

Или измените свой HTML-код, чтобы использовать этот скрипт.

<table border="2"> 
    <tr><td>one</td><td>two</td></tr> 
    <tr><td>one</td><td>two</td></tr> 
    <tr id="new"><td colspan="2" >add new</td></tr> 
</table> 
<script> 
    $('#new').click(function(){ 
    $('#new').before("<tr><td>one</td><td>two</td></tr>"); 
    }); 
</script> 

Второе решение добавляет обработчик кликов к строке вместо ячейки. Таким образом, вы можете легко использовать before (jQuery docu).

2
$('#new').click(function(){ 
    $('#new').parent('tr').before("<tr><td>one</td><td>two</td></tr>"); 
})​ 

Demo

1

Я бы на самом деле ссылки на добавление новой кнопки с помощью $(this) в случае щелчка. Сохраняет снова поиск элемента в DOM.

$('#new').click(function(){ 
    $(this).parent().before("<tr><td>one</td><td>two</td></tr>"); 
}) 

еще лучше, если вы используете объект .on событий у вас есть возможность отключить этот щелчок событие на более позднем этапе, если вы хотите.

$('#new').on({ 
    "click.addNew": function(){ 
     $(this).parent().before("<tr><td>one</td><td>two</td></tr>"); 
    } 
}) 

JS Fiddle: http://jsfiddle.net/tg5qD/11/

1

Вы можете использовать следующий способ ..Сначала нужно найти родителя tr идентификатора 'new'. то мы можем добавить наш новый элемент до родительского элемента.

$('#new').click(function(){ 
    $(this).parent('tr').before("<tr><td>one</td><td>two</td></tr>"); 
})​ 
Смежные вопросы