javascript - 使用带有 Unicode 符号的 string.replace() Javascript 时出现问题

标签 javascript html

我正在编写一个 JavaScript 函数,用于将指向箭头从一个 html 元素移动到另一个元素。 “◀”在 HTML 中显示箭头。

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

这是我的代码的相关部分:

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

我尝试更改 typeof 条件或完全删除它,但没有任何改善的迹象,所以问题似乎出在 Replace() 上。

最佳答案

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

如果您记录/警报 innerHTML 的值,您可以看到字符 可见,而不是字符串 ,所以替换函数将无法找到字符序列来替换它。

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>

关于javascript - 使用带有 Unicode 符号的 string.replace() Javascript 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33771963/

相关文章:

javascript - 对于没有 url 的 ui-router 状态, Angular View 不会显示

javascript - 如何在 Azure 的文本翻译 API 中正确使用 access_token 参数?

javascript - 如何在没有外部 JavaScript 的情况下使用自定义 HTML 代码包装 TinyMCE 元素

javascript - D3 没有在具有多个值的 enter() 数据上创建 DIV

css issue- span 和 anchor 即使没有高度或宽度也会导致额外的边距

javascript - for 循环中多次连续调用 setTimeout 无法正确重复?

javascript - 使用揭示原型(prototype)模式时出现 "Undefined is not a function"错误

javascript - Json返回每个函数

javascript - 使用随机生成的 URL 创建临时网页

javascript - 这会导致浏览器内存泄漏吗?