1

私はJavascriptの初心者です:)

テキスト ブロック内のすべての段落 (タグで区切られたすべての部分を意味する) を受信できるようにしたい<br/ >ので、言語 (ltr と rtl) に応じて、そのような段落ごとに異なる配置設定を適用できます。

たとえば、次のテキストがあるとします。

Hello<br/>שלום

「Hello」を左に、「שלום」を右に揃えたいと思います。なんとなく使えるかなdocument.evaluate

4

3 に答える 3

1

DOM サブツリーがあると仮定すると、深さ優先でテキスト ノードと BR 要素を探すことができます。

var subtree = document.createElement('DIV');
subtree.innerHTML = 'Hello<br/>שלום';

var paragraphs = [""];
function walkSplittingOnBR(node) {
  switch (node.nodeType) {
    case 1:
      if (node.nodeName === 'BR') { paragraphs.push(''); }
      break;
    case 3:
      paragraphs[paragraphs.length - 1] += node.nodeValue;
  }
  for (var child = node.firstChild; child; child = child.nextSibling) {
    walkSplittingOnBR(child);
  }
}
walkSplittingOnBR(subtree);

["Hello","שלום"]の葉paragraphs


「Hello」を左に、「שלום」を右に揃えたいと思います。

3 つのオプションがあります。

  1. HTML dir 属性<span dir="rtl">שלום</div>、セム語族のほとんどのような右から左へのスクリプトの場合と同様です。
  2. のようにCSSの方向<span style="direction:rtl">שלום</span>
  3. コードポイントU+202A-U+202C を埋め込む Unicode 双方向。

ClosuredetectRtlDirectionalityはヒューリスティックに RTL テキストを検出します。

于 2013-04-15T17:23:11.593 に答える
0

を使用しdocument.getElementsByTagName("p")ます。これが機能するには、段落を.<p>で区切るのではなく、もちろんタグで囲む必要があり<br/>ます。しかし<br/>、いずれにせよ、タグは段落を作成するための間違った方法です。

于 2013-04-15T17:21:42.590 に答える