我只是Java语言的初学者:)
我希望能够在文本块中接收所有段落(意味着所有部分都用<br/ >
标记彼此分开),因此我可以根据语言(ltr与rtl)在每个这样的段落上应用不同的对齐设置。
例如,如果我有以下文本:
Hello<br/>שלום
我希望“ Hello”与左侧对齐,而“שלום”与右侧对齐。
可以以某种方式使用
document.evaluate
吗? 最佳答案
假设您有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”与左侧对齐,而“שלום”与右侧对齐。
您有三个选择。
与
<span dir="rtl">שלום</div>
中的HTML dir attributes一样,如从右到左的脚本一样,在Semitic语言家族中也是如此。CSS direction如
<span style="direction:rtl">שלום</span>
Unicode bidi embedding codepoints U + 202A-U + 202C。
Closure的
detectRtlDirectionality
启发式检测RTL文本。关于javascript - 使用javascript检索所有段落,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16021008/