2014-02-09 4 views
2

У меня есть HTML-таблица, которая имеет два уровня строк, например:найти конкретную строку в таблице

enter image description here

У меня есть кнопка на каждой строке первого уровня, который выполняет функцию JavaScript, и перейти на кнопку функции

onclick="js:BillingAddNewChildLine(this);" 

мне нужен способ, чтобы найти внутри функции (BillingAddNewChildLine) последняя строка второго уровня при первой строке уровня, что кнопка была нажата:

  • если нажать на кнопку линии 1, я должен получить линии 1,2
  • , если я нажму на кнопку в строке 2 я должен получить линии 2,2

этот селектор возвращает последнюю строку таблицы , есть ли способ использовать селектор jQuery, чтобы получить то, что мне нужно?

$(".BillingTable > tbody tr:last") 

большое спасибо

+0

Пожалуйста, не используйте 'onclick' вы должны прикрепить яваскрипт ручки rs с javascript не разметкой. Посмотрите [ненавязчивый javascript] (http://en.wikipedia.org/wiki/Unobtrusive_JavaScript#Separation_of_behavior_from_markup), чтобы узнать больше. –

+0

Вы можете вставлять изображения, чтобы сообщать вам об этом. Не нужно ссылаться на документы Google. –

+0

показать нам свою функцию BillingAddNewChildLine или попробовать следующую функцию() или детей() –

ответ

0

Я предполагаю, что вы динамически создавать таблицу, но даже если у вас нет, вы можете дать каждому же самый уровне строки класс как

<tr class="level-1"> 
    <td> 
     <button class="btn" data-level="level-1"></button> 
    </td> 
</tr> 
<tr class="level-1"> 
    <td></td> 
</tr> 
<tr class="level-2"> 
    <td> 
     <button class="btn" data-level="level-2"></button> 
    </td> 
</tr> 

, а затем

$('btn').click(function(){ 
    var level = $(this).attr('data-level'); 
    var row = row.last(); 
}); 
0

Вы ищете что-то вроде этого ??

jsfiddle demo

$('td').live('click', function(){ 
    tempval=parseInt($(this).html()); 
    newval=tempval+1; 

    $(this).parents('table').append('<tr><td class="valuePlace">'+ newval +'</td><td>hi</td></tr>'); 
}) 
+0

Уважаемый vignesh, спасибо! что мне нужно, но я хочу, когда я нажимаю на строку 1, он должен добавить строку 1.2 (потому что у нас уже есть 1.1), а новая строка должна быть после 1.1, а не в конце таблицы. – user3288739

+0

ммм вот так? http://jsfiddle.net/8Zf5T/3/ –

1

Это может быть проще сделать то, что вы хотите, если вы даете класс «родительский» для всех родительских строк (первый уровень).

<tr class="parent"> 
    <td>1</td> 
    <td><button>Get Last Child</button></td> 
    <td>Description</td> 
</tr> 
<tr> 
    <td>1.1</td> 
    <td></td> 
    <td>Description</td> 
</tr> 

Тогда внутри OnClick случае кнопок, вы можете получить окончательный ребенок (или линии 2-го уровня, 1.2 и 2.2 в вашем примере) с помощью:

$(this).closest('tr').nextUntil('.parent').last(); 

(новые строки могут быть добавлены с помощью inserAfter или after метод см прилагаемой скрипки)

DEMO

Смежные вопросы