假设我有这个 HTML 元素:

<td>&mdash;</td>

当被浏览器解析时,&mdash; 被转换为实际的 em-dash,如下所示:
<td>—</td>

如何在 JavaScript 代码中不使用其他字符的情况下测试 &mdash;
console.log(elem.innerHTML == "&mdash;"); // false
console.log(elem.textContent == "&mdash;"); // false
console.log(elem.innerHTML == "—"); // true
console.log(elem.textContent == "—"); // true

最佳答案

您可以创建一个新的 DOM 元素,并比较两者:

/**
 * Test that a DOM element's inner HTML is === &mdash;
 */
function mdashTest(el) {
    var tempEl = document.createElement('div');
    tempEl.innerHTML = '&mdash;';

    return el.innerHTML === tempEl.innerHTML;
}

// Test it!
elem = document.getElementById('dash');
alert( mdashTest( elem ) );
<div id="dash">&mdash;</div>

关于javascript - 测试特殊字符 JavaScript,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32801962/

10-11 12:48