如何在每个元素后插入分隔符?

时间:2011-10-28 12:33:21

标签: jquery append

我在div中有一些超链接。但是,超链接的数量会有所不同。没有什么可说的。它可以是一,二,N.众所周知,div中至少有一个超链接。

我现在有这种格式的链接:

Link1 Link2 Link3 

我想将其转换为:

Link1 | Link2 | Link3

我面临两个问题:

  1. 最后一项之后有一个管道 - 不好。
  2. 管道,作为超链接的文本插入,而不是在元素之间插入。
  3. 为了解决第一个问题,我尝试仅在元素不是最后一个时插入管道。 对于第二个问题,我不知道该怎么做..这就是我到目前为止所做的事情:

    http://jsfiddle.net/KL6Ua/

    另外,我不确定是否有更好的方法来解决第一个问题。建议请。

    谢谢。

3 个答案:

答案 0 :(得分:4)

http://jsfiddle.net/k8Fzk/之类的东西?

$("<span>|</span>").insertAfter($('#divLinks a:not(:last)'));

修改,如果您想在每个元素后插入一个竖线字符,则应使用after,即http://jsfiddle.net/W6RQH/

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

答案 1 :(得分:1)

    if(index != 0)
        $(this).prepend(delimiter);

确定已更新..

<div id="divLinks">
    <span><a href="">One</a></span>
    <span><a href="">two</a></span>
    <span><a href="">three</a></span>
</div>



$(function() {

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

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

        if(index != 0)
            $(this).parent().prepend(delimiter);
    });
});

答案 2 :(得分:1)

您有列表的链接,因此不要害怕为列表使用适当的HTML标记( ul li )。然后,不要使用Javascript进行元素的装饰 - CSS是一个更好的工具。

http://jsfiddle.net/PcHSM/