Як вставити роздільники після кожного елемента?

Я маю в розділі кілька гіперпосилань. Кількість гіперпосилань, однак, коливається. Там не кажу, що це буде. Це може бути One, Two, N. Що відомо, є те, що в div завжди є хоча б одне гіперпосилання.

У мене зараз є посилання в цьому форматі:

Link1 Link2 Link3 

Я хочу перетворити його в:

Link1 | Link2 | Link3

Я стикаюсь з двома проблемами:

  1. Є труба після останнього елемента - не дуже добре.
  2. Труба, яка вставляється як текст гіперпосилання, а не між елементами.

Щоб подолати першу проблему, я спробував вставити трубку, лише якщо елемент не останній. для другої проблеми я не знаю, що робити .. ось що я роблю:

http://jsfiddle.net/KL6Ua/

Крім того, я не впевнений, чи є кращий спосіб вирішити першу проблему. Поради будь ласка

Дякую,.

1

3 Відповіді

Щось подібне http://jsfiddle.net/k8Fzk/ ?

$("|").insertAfter($('#divLinks a:not(:last)'));

Edit, if you want to insert just a pipe character after each a element, you should use after i.e. http://jsfiddle.net/W6RQH/:

$('#divLinks a:not(:last)').after('|');
4
додано
@stecb, так що якщо я хочу, чи можу я все-таки поставити просто персонаж труби? спробував це і не хотів працювати!
додано Автор iamserious, джерело
Привіт @ stecb, здорово .. спасибі, однак, я не зовсім зрозуміла, чому роздільник повинен бути проміжком .. Чи можете ви, будь ласка, пояснити? Дякую
додано Автор LocustHorde, джерело
так, @iamserious правильно, якщо я вийму пробіл, труба не працює
додано Автор LocustHorde, джерело
О, я бачив вашу відповідь трохи пізно, спасибі .. Я думаю, що я розумію зараз! Потрібно піти перевірити документацію.
додано Автор LocustHorde, джерело
Coz у такому випадку, можливо, встановіть display: inline-block до елемента проміжку, ви можете встановити спеціальну маржу, колір тощо :)
додано Автор stecb, джерело
символ труби не є вузлом DOM, тому він підніме помилку виразу. У такому випадку ви повинні використовувати після того, наприклад $ ('# divLinks a: not (: last)'). After ('|');
додано Автор stecb, джерело

У вас є список посилань, тому не бійтеся використовувати відповідні теги HTML для списків ( ul li ). Тоді не використовуйте Javascript для оформлення елементів - CSS це кращий інструмент.

http://jsfiddle.net/PcHSM/

1
додано
Привіт, це дуже хороша ідея, але я не контролюю, що йде на сторінку, я працюю над вже представленою сторінкою з jquery, щоб отримати речі на своєму місці .. спасибі.
додано Автор LocustHorde, джерело
О, добре. У будь-якому разі, ви можете використовувати: перед тегами a теги ul li є більш семантичними для створення списків.
додано Автор artuska, джерело
    if(index != 0)
        $(this).prepend(delimiter);

Оновлено ..

<div id="divLinks">
    One
    two
    three
</div>



$(function() {

    var NumberOfLinks = $('#divLinks a').length;

    $('#divLinks a').each(function(index) {
        var delimiter = " | ";

        if(index != 0)
            $(this).parent().prepend(delimiter);
    });
});
1
додано
Привіт Стів, вибачте, труба все ще з'являється всередині гіперпосилання, і, отже, вона все ще є посиланням. не вирішуючи мою другу (і головну) проблему.
додано Автор LocustHorde, джерело
Вибачте @steve, навіть не намагаючись скористатись цим кодом, я можу сказати, що це неправильно, оскільки повсякденна труба додається до батьківського коду, всі труби знаходяться в одному місці, а посилання в іншому - ось що робить ваш код: jsfiddle.net/7s633/2
додано Автор LocustHorde, джерело
Привіт, аа, так, я бачу, що робота працює, але все, що я роблю в jQuery, полягає в тому, що я не створюю сторінку, і я не контролюю її, я можу форматувати тільки після того, як сторінка була вироблено .. Дуже дякую, теж
додано Автор LocustHorde, джерело
Див моє оновлення ..
додано Автор Steve, джерело
Якщо ви дивитесь на свої посилання, я вклав їх у проміжні елементи, які роблять це роботою. Ваш jsfiddle - це не те, що було запропоновано, але проблем немає.
додано Автор Steve, джерело