Чтобы проверить ожидаемый результат, используйте указанную ниже опцию
- Проверьте, доступен ли предыдущий индекс td или не используется длина
- Проходите по индексу, если он недоступен, и добавьте пустой индекс td, чтобы сделатьэто доступно
- Добавить необходимый val2 td
function add(index){
if($(".xyz").find("td").eq(index).length > 0){
$(".xyz").find("td").eq(index).after("<td>" +
"val2" +
"</td>");
}else{
for (i=0; i < index; ++i) {
$(".xyz").find("td").eq(i).after("<td>" +
"</td>");
}
$(".xyz").find("td").eq(index).after("<td>" +
"val2" +
"</td>");
}
}
add(2);
tr td{
border: 1px solid black
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr class='xyz'>
<td> val1 </td>
</tr>
</table>
codepen - https://codepen.io/nagasai/pen/vQgpYX
Опция 2:
Использовать идентификатор дляtds со значением индекса и добавление элементов после соответствующего идентификатора с использованием индекса
пример рабочего кода
function add(i){
$(".xyz td").each(function (index, value) {
if(i > parseInt(value.id.split('td')[1])){
if(i > parseInt($(".xyz td").last().attr('id').split('td')[1])){
$(".xyz td").last().after("<td id=" +'td'+i+ ">" +
"val" +i+
"</td>");
return false
}else{
$(this).after("<td id=" +'td'+i+ ">" +
"val" +i+
"</td>");
return false
}
}else{
if(i == parseInt(value.id.split('td')[1])){
$(this).after("<td id=" +'td'+i+ ">"+
"val" +i+
"</td>");
return false
}
}
})
}
add(5);
//add(3);
//add(1);
//add(6)
tr td{
border: 1px solid black
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr class='xyz'>
<td id="td0"> val0 </td>
</tr>
</table>
codepen - https://codepen.io/nagasai/pen/QJdaoP