Поиск родителя у динамических элементов
Приветствую господа программисты.
Прошу помощи; <tr> <td></td> <td>Name</td> // ....... <td id='rform'> <button type='button'>add</button> </td> </tr> в этот td по клику на кнопку динамически добавляется форма; $('td').on('click', 'button', function () { var elem = $(this), action = $(elem).attr('id'), name = $(elem).parent().parent('tr').find('td:eq(1)').text(), line = $(elem).parent('td'); switch(action) { // ...... case 'send': _add_form_link(line, name); break; // ...... } } function _add_form_link(line, name) { var form = $('<div/>').attr({'class':'rform'}) .append( $('<form/>').attr({'method':'post', 'action':'/options'}) .append( $('<input/>').attr({'type':'hidden','value':name,'name':'name'}), $('<input/>').attr({'type':'hidden','value':sett,'name':'sett'}), $('<input/>').attr({'type':'text','name':'link','placeholder':'enter link'}), $('<button/>').attr({'type':'button','id':'send'}).text('send'), $('<button/>').attr({'type':'button'}).html('×') )).appendTo($(line)); var left = ($(form).width() -10), persp = left +10; $(form).css({ 'left':'-'+ left +'px', 'top':($(form).height()/2 -$(line).height()/2 -7) +'px' }).animate({'left':'-'+ persp +'px', 'opacity':1}, 300); } теперь по клику на send нужно найти tr родитель. опыта мало. новичок. $(this).parents('tr'); // не работает $(this).closest('tr'); // тоже не работает $(this).parent().parent().parent().parent('tr') // как ни странно но тоже нет :) :help: |
Цитата:
|
почему-то не выходит.
пробую найти родителя td и показать его id: alert($(this).parents('td').attr('id')); // undefined |
Цитата:
|
кнопка send находиться в динамически созданной форме;
$('td').on('click', 'button', function () { var elem = $(this), action = $(elem).attr('id'), name = $(elem).parent().parent('tr').find('td:eq(1)').text(), line = $(elem).parent('td'); switch(action) { // ...... case 'send': _add_form_link(line, name); break; // ...... } } function _add_form_link(line, name) { var form = $('<div/>').attr({'class':'rform'}) .append( $('<form/>').attr({'method':'post', 'action':'/options'}) .append( $('<input/>').attr({'type':'hidden','value':name,'name':'name'}), $('<input/>').attr({'type':'hidden','value':sett,'name':'sett'}), $('<input/>').attr({'type':'text','name':'link','placeholder':'enter link'}), $('<button/>').attr({'type':'button','id':'send'}).text('send'), // вот тут...................... $('<button/>').attr({'type':'button'}).html('×') )).appendTo($(line)); var left = ($(form).width() -10), persp = left +10; $(form).css({ 'left':'-'+ left +'px', 'top':($(form).height()/2 -$(line).height()/2 -7) +'px' }).animate({'left':'-'+ persp +'px', 'opacity':1}, 300); } все это вставляется; <tr> <td></td> <td>Name</td> // ....... <td id='rform'> <button type='button'>add</button> // вот сюда............................................................................... </td> </tr> пытаюсь найти id td. |
DarkSouls,
... информации недостаточно, сделайте рабочий пример с вашей проблемой. сейчас это обрывки кода, что такое sett, почему строка 5 у вас, то работает все это вставляется; то не работает пытаюсь найти id td. |
DarkSouls,
и если найти родителя ячейки (tr), по которой щелкаем, то почему $(elem).parent().parent('tr'), если $(elem) - это ячейка, а родитель ее это parent()? |
Спасибо! parents() работает. ручки у меня просто кривые... сори!...
|
Часовой пояс GMT +3, время: 03:12. |