我有一个获取数字并从句子中突出显示该单词编号的函数。

该句子将使用波斯语和从右至左。
所有单词都用“ |”分隔在句子中。

我正在使用Arrays,因为其他常见方法不适用于RTL文本,包括本文中的replace方法:
How to highlight text using javascript

问题是当单词突出显示时,每个单词后面都有一个多余的空间,我不需要突出显示。

我想消除这一点。

我在这里准备了一个演示:
https://liveweave.com/vp6YQi

function hilWrd(i) {
  var txt1 = document.getElementById( "RTL1" ).innerHTML;
  var txt2 = document.getElementById( "RTL2" );
  var ary = txt1.split("|");

  ary.splice( i-1, 0, "<span class='hil'>" );
  ary.splice( i-1 + 2, 0, "</span>" );
  txt2.innerHTML = ary.join(" ");
}


预期结果:突出显示“تست”
实际结果:突出显示“تست”

最佳答案

无需增加数组元素的数量,只需将单词包装在该特定数组元素内即可:

ary[i-1] = "<span class='hil'>" + ary[i-1] + "</span>";


演示-Link

10-08 08:53
查看更多