Есть в html документе таблица такого вида:
<table>
<tr>
<td class="col1">1</td>
</tr>
<tr>
<td class="col1">2</td>
</tr>
<tr>
<td class="col1">3</td>
</tr>
</table>
Нужно вместо цифр выводить такую ссылку <a href="index.php?id=1">1</a>
как такое можно реализовать? и вообще ли такое возможно?
Хватаем все td.col1
элементы, пробегаем по каждому, вытягиваем значение и сетаем новое по темплейту <a href="index.php?id={id}">{id}</a>
.
Что-то вроде:
$("td.col1").each(function(el) {
let value = $(this).html();
$(this).html('<a href="index.php?id=' + value + '">' + value + '</a>');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td class="col1">1</td>
</tr>
<tr>
<td class="col1">2</td>
</tr>
<tr>
<td class="col1">3</td>
</tr>
</table>
Почитать:
.each()
.html()
Пробегаем по элементам, берем их текст, добавляем текст в ссылку, вставляем ссылку как html обратно.
$('td.col1').each(function() {
var innerText = $( this ).text();
$( this ).html('<a href="index.php?id=' + innerText + '">' + innerText +'</a>');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td class="col1">1</td>
</tr>
<tr>
<td class="col1">2</td>
</tr>
<tr>
<td class="col1">3</td>
</tr>
</table>
Разбивая строку на массив методом split() через разделитель (", ") получаю alert-ы с ожидаемыми результатами, после этого получаю alert-ы с сообщением...