2016-11-24 17 views
1

div内にいくつかのリンクを追加しています。要素間にセパレータを追加する

は、コードがどのように私はa | b | c | dを取得するために、のような|区切り文字の間に追加することができ、基本的にabcd

のようなものを生成

$('.js-section').children().each(function() { 
    var initial = $(this).data('initial'); 
    $(".js-section-navigation").append("<a href='#"+ initial +"'>"+ initial +"</a>") 
}); 

のように見えますか?

私が単に追加でセパレータを追加した場合、私はa | b | c | d |で終わりますが、最後の文字の後ろに区切り記号は必要ありません。

ありがとうございました。

+3

純粋に設計目的の場合は、代わりにCSSを使用します。 '.js-section-navigation>のようなもの:before:{content: '|';パディング:0 5ピクセル; } 'を使い、':first-child'や ':first-of-type'を使って最初の要素にセパレータを隠します。 JSの使用を主張する場合は、各要素のインデックスである 'each()'の最初のパラメータに依存して、その要素がセット内の最初のものか最後のものかを判断できます。 – haim770

答えて

4

まず、あなたのコードは、現在の状態ではまったく動作しないので、質問の誤植であると見なしていますが、最初はあなたのコードに引用符が一致していません。このようなあなたappend()、セパレーターと一緒に、あなたの問題を解決するために

あなたは可能性があり、アレイに内push()<a>要素、join()それらは:

var els = []; 
$('.js-section').children().each(function() { 
    var initial = $(this).data('initial'); 
    els.push('<a href="#"' + initial + '">' + initial + '</a>'); 
}); 
$(".js-section-navigation").append(els.join(' | ')); 

はまた、あなたが現在いるコードを使用することができますし、 CSSを使用した分周器を置き、このような何か:

.js-section-navigation a { 
    display: inline-block; 
    border-right: 1px solid #000; /* amend as needed */ 
    padding-right: 10px; 
    margin-right: 10px; 
} 
.js-section-navigation a:last-child { 
    border: 0; 
    padding: 0; 
    margin: 0; 
} 

Working Example

+0

ありがとうございます、あなたのCSSソリューションは私のために働く。 – macsig

+0

@macsig問題はない、助けてうれしい –