Измените содержимое <a>внутри <td>для каждой строки в <table> - PullRequest
0 голосов
/ 28 февраля 2012

У меня большая таблица, в каждой строке 6 столбцов. Каждая строка выглядит так со своим значением:

<tr>
<td>year</td>
<td><a href="2012/some_file_path.pdf" target="_blank">Some Title</a></td>
<td>subject</td>
<td>catego</td>
<td>Department</td>
<td>name</td>
</tr>

Я хочу использовать jQuery для замены текста в <a> (в данном случае «некоторый заголовок») его путем:

<tr>
<td>year</td>
<td><a href="2012/some_file_path.pdf" target="_blank">2012/some_file_path.pdf</a></td>
<td>subject</td>
<td>catego</td>
<td>Department</td>
<td>name</td>
</tr>

Для меня это как отладчик, чтобы проверить, есть ли у меня все файлы ... но я не знаю, как это сделать. Любая помощь будет оценена!


Я имею в виду нечто подобное, но на самом деле я не знаю синтаксис:

function debug(){
    $('#datatable').find('tr').each
      $path = $('td:first-child + td > a').getHref();
      $('td:first-child + td > a').set($path);  
}

1 Ответ

2 голосов
/ 28 февраля 2012

jQuery-объекты имеют и each() функцию , которая позволяет вам предоставить функцию, которая будет запускаться один раз для каждого элемента DOM, который соответствует селектору объекта jQuery.

Предполагая, что это единственная таблица на странице, и таблица не содержит никаких ссылок, кроме тех, которые вы хотите изменить, она должна это сделать:

$('table td a').each(function(){
    // Within a function passed to each(), “this” refers to the DOM element for 
    // which the function is being run.
    $link = $(this);

    $link.text($link.attr('href'));
});
...