Удалить последнюю ссылку в div, но сохранить текст «link» - как? - PullRequest
0 голосов
/ 09 февраля 2012

Я строю несколько крошек для навигации. Это делается до того, как страница отображается на языке шаблонов. После того, как страница отрисована, мне нужно сделать некоторые рисунки.

Вместо того, чтобы делать кучу IF / ELSE на стороне шаблонов, есть ли способ отрисовки div с ссылками ... скажем ..

<div id="bc_links">
<a>Link one</a> >
<a>Link 22</a> >
<a>Link 33</a> >
<a>Link 44</a> >
</div>

ПОТОМ выполните некоторый jquery или прототип (имейте доступ к обеим библиотекам) и сможете определить, что link44 является последней ссылкой, и отобразить это:

<div id="bc_links">
<a>Link one</a> >
<a>Link 22</a> >
<a>Link 33</a> >
 Link 44
</div>

Любая помощь будет оценена.

Ответы [ 4 ]

5 голосов
/ 09 февраля 2012
var $link = $('#bc_links a').last();
$link.replaceWith($link.text());
3 голосов
/ 09 февраля 2012

Вы можете использовать .innerWrap(), чтобы обернуть текст в тег <span>, затем выбрать новый тег <span> и .unwrap() его, удалив тег привязки из DOM и оставив текст без изменений.

$('#bc_links').children().last().wrapInner('<span />').children().unwrap();

Вот демонстрационная версия: http://jsfiddle.net/7dB8R/

Обновление

Вы также можете использовать .contents() для удаления текстовых узлов (каретка в конце строки):

$('#bc_links').contents().last().remove();

Вот демоверсия: http://jsfiddle.net/7dB8R/1/

1 голос
/ 09 февраля 2012

Вам нужно будет поместить каждый тег в неупорядоченный список (li).

$("li").last().find("a").unwrap();
1 голос
/ 09 февраля 2012
$('#bc_links a:last').replaceWith(function() {
    return $(this).text();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...