これは動的に作成された著者の HTML リストで、属性が含まれています。
<span class="authors">
<a href="/url_one">Author One Name</a><span> - <a href="http://wsj.com">Author Attirbute String</a></span>,
<a href="/url_one">Author Two Name</a><span> - <a href="http://wsj.com">Author Attirbute String</a></span>, and
<a href="/url_one">Author Three Name</a><span> - <a href="http://wsj.com">Author Attirbute String</a></span>
</span>
それらが同一で連続している場合、 JQueryを使用して連続する各連続を取り除き<span> <a href="http://wsj.com">Author Attirbute String</a></span>
、最後のものだけを残すにはどうすればよいですか?
それで、「ウォールストリートジャーナル」という同じ属性を持つ3人の著者がいるとしましょう...私はこれを作ろうとしています:
著者 1 名 - ウォール ストリート ジャーナル、著者 2 名 - ウォール ストリート ジャーナル、および著者 3 名 - ウォール ストリート ジャーナル
これがあります:
著者 1 名、著者 2 名、著者 3 名 - ウォール ストリート ジャーナル
属性が同一で連続している場合にのみ機能し、それ以外の場合は関数を中止します。
その他の考慮事項:
- HTML インスタンスごとに 1 ~ 4 人の作成者が存在できます。
- これらの著者リストのインスタンスがページにいくつか存在する可能性があり、それらすべてを処理する必要があります。
できれば助けてください!私はこれが複雑であることを知っています...
これは私がやっていることの単純化されていない例です... Drupal サイトであり、重複を削除するために変更したいこの関数を使用して、コードのタイトルタグから JQuery によって属性が生成されます。
$(function() {
$('span.authors a').each(function() {
$('a[href^="/authors/"]').attr('title');
if ($(this).attr('title')) { var attrarray = $(this).attr('title').split('|');
if (attrarray[1]) { var thespan = '<span> ~ <a href="http://' + attrarray[1] + '">' + attrarray[0] + '</a></span>'; }
else { var thespan = '<span> ~ ' + attrarray[0] + '</span>'; }
$(this).after(thespan); }
});
});
ページの例を次に示します: http://kpbj.com/authors/dee_ann_durbin