1

ここで私がやりたいことを正確に説明しましょう。私はWikispacesを使用していますが、デフォルトでは、ユーザーがサイドナビゲーションバーに新しいページリンクを追加すると、wikispacesはwiki_linkまたはwiki_link_newの2つのクラスのいずれかを挿入します。これがどのように見えるかです...

<a href="/Map+Page" class="wiki_link">Map Page</a><br/>
<a href="/Staff+Olympics" class="wiki_link">Staff Olympics</a><br/>
<a href="/Staff+Meetings" class="wiki_link_new">Staff Meetings</a><br/>

両方のクラス(wiki_linkとwiki_link_new)を自動的に削除し、ページのURLをより適切に表すクラスをリンクに追加したいと思います。 したがって、/ Map + Page urlの場合、リンクタイトル...マップの最初の3文字であるクラスがリンクに追加されます。次に、リンクURLに2つの単語が含まれている場合(/ Map + Pageのように)、クラスはURLの2番目の単語の最初の3文字を、ダッシュの前に追加します。したがって、/ Map + Pageの場合、このリンクに追加されるクラスは次のようになります。

class="map-pag"

または、/ Staff + Olympics URLの場合、追加されるクラスは...

class="sta-oly"

また、a:link url内に2つ以上の単語が含まれている場合、リンクへのCSSクラスの適用に関しては、最初の単語の最初の3文字にのみ注意を払い、その後にダッシュしてから、2番目の単語の最初の3文字が続きます。

<br/>それに加えて、デフォルトでwikispacesにも挿入されているのすべてのインスタンスを削除したいと思います。

理想的には、上記の3つのa:linksをこれに変更するjQueryソリューションが必要です...

<a href="/Map+Page" class="map-pag">Map Page</a>
<a href="/Staff+Olympics" class="sta-oly">Staff Olympics</a>
<a href="/Staff+Meetings" class="sta-mee">Staff Meetings</a>

私のクラスの命名規則が最適かどうかはわかりません。それで、あなたがより良い提案を持っているならば、私はそれを聞きたいです!:)

あなたが提供できるどんな助けにも感謝します!

4

1 に答える 1

3

これはあなたが望むことをするはずです:

// Select the links, and remove their classes
$(".wiki_link, .wiki_link_new").attr('class','').each(function(){
    var className = $(this).attr('href').substr(1).toLowerCase().split('+').slice(0,2).join('-');
    $(this).addClass(className);
});

<br />CSSでタグを隠すだけです。DOM の操作は時間とリソースの面でコストがかかるため、DOM を非表示にするだけで処理が速くなります。

CSS

#container br { display: none; }

これらのタグ#containerの親である要素はどこにありますか。a

本当に jQuery を使いたい場合:

jQuery

$("#container br").remove();

繰り返しますが、はタグ#containerのリストの親です。a

于 2010-01-09T03:08:13.463 に答える