insertBefore — если элемент не существует

#jquery

#jquery

Вопрос:

если индекс больше фактического количества строк, я ничего не добавляю?

 var elm = $('tr', tbl).eq(index);
if(elm){
    row.insertBefore(elm);
}
else{
    row.appendTo(tbl);
}
  

Ответ №1:

 if($('tr', tbl).length > index){
    row.insertBefore($('tr', tbl).eq(index));
}
else{
    row.appendTo(tbl);
}
  

Ответ №2:

Поскольку у вас уже есть ссылка на table , я бы использовал его собственное .rows свойство, чтобы получить элемент DOM строки в вашем index .

Тогда сработает простая if( elm ) инструкция.

 var elm = tbl[0].rows[index];
if( elm ) {
    row.insertBefore(elm);
}
else{
    row.appendTo(tbl);
}
  

Требует меньше кода и будет выполняться немного быстрее.