麻烦使用string.replace()Javascript与Unicode符号

时间:2015-11-18 04:38:39

标签: javascript html

我正在编写一个javascript函数来将指向箭头从一个html元素移动到另一个html元素。 “&#9664”在HTML中显示一个箭头。

麻烦的是,虽然我可以向innerHTML添加箭头,但我似乎无法从当前选择中删除箭头。

以下是我的代码的相关部分:

var current;
function changeArrowFunction(line) {
if (typeof current != 'undefined')
    current.innerHTML = current.innerHTML.replace(" &#9664","");
line.innerHTML = line.innerHTML + " &#9664";
current = line;
}

我尝试改变类型的条件或完全删除它没有任何改进的迹象,所以似乎问题是使用replace()。

1 个答案:

答案 0 :(得分:3)

问题是内部html不保留html代码。

如果您记录/提醒innerHTML的值,您可以看到字符可见而不是字符串&#9664,因此替换功能无法使用找到替换它的字符序列。



var current;

function changeArrayFunction(line) {
  if (typeof current != 'undefined') {
    current.innerHTML = current.innerHTML.replace(" ◀", "");
  }
  line.innerHTML = line.innerHTML + " &#9664";
  current = line;
}

var c = 0;

function test() {
  changeArrayFunction(document.getElementById('d-' + (++c)))
}

<div id="d-1">adf</div>
<div id="d-2">adf</div>
<div id="d-3">adf</div>
<div id="d-4">adf</div>
<button onclick="test();">Test</button>
&#13;
&#13;
&#13;