Сделать ссылку вместо текста jquery

337
16 мая 2017, 04:21

Есть в 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> как такое можно реализовать? и вообще ли такое возможно?

Answer 1

Хватаем все 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()
Answer 2

Пробегаем по элементам, берем их текст, добавляем текст в ссылку, вставляем ссылку как 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>

READ ALSO
Связать селекты между собой

Связать селекты между собой

Использую DLEХочу прикрутить к нему одну штуку

359
Метод split() выводит undefined

Метод split() выводит undefined

Разбивая строку на массив методом split() через разделитель (", ") получаю alert-ы с ожидаемыми результатами, после этого получаю alert-ы с сообщением...

279