【发布时间】:2017-06-20 20:37:31
【问题描述】:
我正在尝试在某些论坛上为某些用户的名字着色 (http://forum.hardware.fr/hfr/Discussions/politique/american-politics-president-sujet_71396_2268.htm)
所以我做了一个书签:
Array.prototype.forEach.call(document.getElementsByClassName('s2'), function(img) {
if (['Theomede', 'doublebeurre'].indexOf(img.innerHTML) > -1) {
img.style.color = 'Red';
}
});
但是,它不适用于用户“doublebeurre”。我想知道为什么,所以在调试时,我做到了:
img.innerHTML.length 返回 13,而 'doublebeurre'.length 返回 12。
img.innerHTML.split("") 返回 ["d", "o", "u", "b", "l", "e", "b", "e", "u", “r”、“”、“r”、“e”]
这个空字符是什么?我怎样才能让我的脚本在这个用户上工作? (img.innerHTML.trim() 不能解决问题)
【问题讨论】:
-
<b class="s2">doublebeur&#8203;re</b> -
嗯。用户是否使用 contenteditable 组件或其他内容填充数据?任何。试试这个解决方法,看看是否有效: var splitted = myString.split(""); splitted.splice(splitted.indexOf(""), 1);
-
如果@mplungjan 是对的,你可以使用innerText 属性而不是innerHTML。
-
codetable.net/decimal/8203文本中是一个空字符
-
如果您遍历该数组,并对它们中的每一个执行“typeof”,那么(看起来是什么)空白会导致什么?另外,看看你是否能找出它的字符代码。直截了当,您只希望文本中有一个空字符。但是,如果您正在查看文本而没有看到它,那么对各个字符运行几个测试,看看您发现了什么。如果您看到与预期不同的任何内容,则原始字符串中使用的字符集可能有些特殊。
标签: javascript