0

非常に特定の文字グループにクラスを適用することにより、ドキュメント内の HTML を削減しようとしています。私の例では、アスタリスクのグループであり、ドキュメントでは ** として表示され、ラップされているコードは次のとおりです。

<span class="asterisk">**</span>

しかし、ページには 50 を超えるインスタンスがあります。したがって、この場合、定義されたグループにクラスを動的に追加する方法を探しています**

これまでに提案された最も効率的なソリューションは、

<script>
  $("span:contains('**')").addClass("asterisk");
</script>

これにより、必要なコードの量が削減され、<span>**</span>

以下の例では、すべての '**' が食品を示し、私ができるクラスを与えられるようにしたい場合

<span>**</span>Indicates food related word
<p>Intelligentsia high life shoreditch keffiyeh skateboard, hoodie master cleanse helvetica. Fanny pack <span>**</span>raw denim street art, wes anderson gentrify lomo lo-fi. </p>
<p>Selfies typewriter you probably haven't heard of them <span>**</span>small batch street art, cliche raw denim try-hard sartorial cardigan pitchfork. Forage flannel portland, small batch before they sold out +1 post-ironic <span>**</span>PBR skateboard mixtape fap try-hard banjo bicycle rights. Vinyl banksy banjo, <span>**</span>gastropub <span>**</span>four loko art party <span>**</span>food truck next level.</p> 

それがどのように繰り返されるかがわかりますか?したがって、私の意図は、選択したいものの横に「**」を入力することです。次に、定義された文字のグループにクラスを動的に追加します。

<p>**Chambray letterpress **kale **chips **high life 90's wolf yr semiotics mcsweeney's biodiesel, flannel fixie retro.</p> 
<p>Meh wayfarers fap scenester retro single-origin **coffee, cliche craft **beer 8-bit lo-fi selvage yr mixtape 90's.</p>

これを完了するために、ここからどこへ行くべきかを絞り込むのにいくつかの助けを使うことができます.

4

4 に答える 4

0

コード入力を最小限に抑えながら、最終的に最もうまく機能したのは

  <script>
    var value = $(document.body).html(),
    re = /\*\*/g;
    str = value.replace(re, '<span class="asterisk">**</span>');
    $(document.body).html(str);
  </script>

これにより、将来コンテンツを入力する人<span>が ** に a を追加することを忘れないようにする必要がなくなります。

願わくば、これがプロジェクトに追加して、必要に応じて文字列のスタイルを設定することが他の人にとって有益であったことを願っています。

于 2013-05-13T21:31:41.540 に答える
0

実際にクラス名を置き換えたい場合は、次のようにすることができます。

$("span.some_class").addClass( function(index, current_class) {
     return current_class + ' new_class' 
});

クラス名を追加するのではなく変更する場合は、戻り値から current_class を削除できます。

于 2013-05-13T19:13:52.877 に答える