テキストの read-more/less 機能を書いていますが、次の問題に遭遇しました。
私の手順: 1) 複数の段落を持つ div を含むテキストのコンテンツを取得します。
var content = $heroContent.html();
2) 常に表示される部分の部分文字列と、全文の 2 番目の部分文字列 (常に表示される部分、つまり実際には非表示の部分) を作成します。(その隠れた部分はボタンをクリックすることで表示・非表示が可能です)
c = content.substr(0, 700)
h = content.substr(700, content.length - roundedLimit)
3) 2 番目の部分を morecontent クラスのスパン内に配置して、そのコンテンツを非表示にして表示できるようにします。
html = c + "<span class='morecontent'>" + h + "</span>";
4) 上記の html 変数をテキスト付きの div に再度追加し、「morecontent」を非表示にします。
テキストをスパンに配置する理由は、テキストが分割される前にインラインで配置できるためです。スパンにない場合、テキストは下の行に表示されるだけであり、これは望ましくありません。
問題: 2 番目の部分文字列hは、複数の段落で構成される場合があります。そのため、P タグが変数h内で閉じると、span タグも自動的に閉じます。したがって、クラスmorecontentは最初の段落の終わりまでスパンの開始にのみ適用されます。
テキストをDIVに入れて修正しようとしましたが、テキストがインラインで表示されません。これは本当に重要な「機能」です。
誰かがこの問題の修正を私に与えることができれば、それは素晴らしいことです!