Получить ссылку на предыдущий брат и обновить ссылку на текущий элемент - PullRequest
0 голосов
/ 19 октября 2010

Я закончил и сделал это вручную, но думал, что это можно сделать намного быстрее с помощью jquery.

У меня есть таблица с десятками примеров строк ниже. То, что я хотел бы сделать, это найти предыдущих братьев и сестер <a href="#">, захватить их URL, изменить тип файла на .doc и применить.

<tr id="node-20" class="child-of-node-19">
        <td>Tips</td>
        <td>
        <a href="docs/Interview-Info.pdf">
          <img width="20" height="20" src="/images/icons/icon-pdf.gif" alt="PDF" />
        </a> 
        <a href="#">
          <img width="20" height="20" src="/images/icons/icon-word.gif" alt="Microsoft Word" />
        </a>
        </td>
    </tr>

Так что, как только javascript будет завершен, сгенерированный источник будет выглядеть следующим образом.

<tr id="node-20" class="child-of-node-19">
        <td>Tips</td>
        <td>
        <a href="docs/Interview-Info.pdf">
          <img width="20" height="20" src="/images/icons/icon-pdf.gif" alt="PDF" />
        </a> 
        <a href="docs/Interview-Info.doc">
          <img width="20" height="20" src="/images/icons/icon-word.gif" alt="Microsoft Word" />
        </a>
        </td>
</tr>

Мой последний вариант был:

$('a+a[href="#"]').attr('href',$('a+a[href="#"]').prev().attr('href'));

В итоге получается первый URL и применение его ко всем <a href="#">. Таким образом, Interview-Info.pdf применяется ко всем этим ссылкам.

Это насколько я получил из-за временных ограничений. Есть ли простой, чтобы сделать это?

Ответы [ 2 ]

2 голосов
/ 19 октября 2010

.attr () работает только с первым элементом в наборе, поэтому вы, вероятно, хотите перебрать свой список и применить его к каждому:

$('a+a[href="#"]').each(function() { 
  $(this).attr('href', $(this).prev().attr('href').replace(/\.[a-z0-9]+$/i, '.doc')); 
});
0 голосов
/ 19 октября 2010

вы почти у цели, попробуйте это:

$('a+a[href="#"]').attr('href',$('a+a[href="#"]').prev().attr('href').replace(/.pdf/gi, ".doc"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...