シナリオのJavaScript/jQueryの - 私はリンクが含まれている記述があり
スライスされた段落テキストコンテンツにアンカータグを保管してください。説明に100文字以上が含まれている場合は、最初の文字から100文字目までのテキストのみを含むようにスライスします。また、省略記号とその他のリンクをクリックして残りのコンテンツを表示します。
スライス問題は、それがコンテンツ内のリンクを削除します。
私の思考/望ましい結果
私は全体の一貫性を保つためにスライス記述の正確な長さを得るために、jQueryのは.text()メソッドを使用しています。私が正しいと思っている場合、.text()は生の内容を取得するだけで、アンカータグが取り除かれているのです。ただし、.html()メソッドを使用した場合、HTMLタグの文字数とその属性もカウントされるため、テキストのスライス位置の整合性を保つのが難しくなります。これは私がこだわっている場所です。
最終的には、リンクを維持したまま正確に100文字で説明をスライスしたいと思います。また、各ページに複数の説明が表示されるので、クリック時の個々の固有の説明を展開して最小限に抑えたい。
はCodePenに周りの再生:https://codepen.io/andrewgarrison/pen/BdJQGz/
$(document).ready(function() {
var minimized_elements = $('p.description');
var minimize_character_count = 99;
minimized_elements.each(function() {
var t = $(this).text();
if (t.length < minimize_character_count) return;
$(this).html(
t.slice(0, minimize_character_count)
+ '<span>... </span><a href="#" class="more">More</a>'
+ '<span style="display:none;">'
+ t.slice(minimize_character_count, t.length) + ' <a href="#" class="less">Less</a></span>'
);
});
$('a.more', minimized_elements).click(function (event) {
event.preventDefault();
$(this).hide().prev().hide();
$(this).next().show();
});
$('a.less', minimized_elements).click(function (event) {
event.preventDefault();
$(this).parent().hide().prev().show().prev().show();
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h3>Sliced Text</h3>
<p class="description">This product is super hot. You can go to <a href="http://www.someurlgoeshere.org">this awesome website</a> and order it right now! But wait, that's not all. If you buy three you get 20 more free. That's right. Buy now from <a href="#">here</a> and this could all be yours.</p>
感謝を!
CSSを使用して、特定のピクセル(または他の単位)の幅よりも広い/大きなものを隠すことを検討しましたか?そうすれば、要素の実際の内容をまったく変更する必要はありません。 – nnnnnn
ええ、私は、テキストを切り捨てている理由は、プレビューを300pxの幅のdiv内で2行進めたいからではないことを明確にしたはずです。したがって、私は私はそれを下に置く余地がないので、2番目の行にある "More"リンクも必要です。もし私がしたら、私は間違いなくCSSベースのアプローチを使用します。ご回答ありがとうございました! –
.children( 'a')を使用してリンクを取得し、それらをリンクしてリンクの配列と別のアンカーテキストの配列を作成します。私はあなたがリンク配列からのテキストを置き換えると思っています –