http://jsfiddle.net/b1ekda2j/1/
我的HTML
<dd>
<br>作詞:汪峰
<br>作曲:汪峰
<br>
<br>他們將你狠狠地遺棄在街口
<br>流血的腦袋出現混亂的幻覺
<br>你是否在懷疑你拼死的付出
<br>是否再一次質疑堅守的信仰
我的js
$(document).ready(function () {
$('br').each(function () {
var nodeValue = this.nextSibling.nodeValue;
console.log(nodeValue);
if (nodeValue.indexOf(':') > -1) {
$(this.nextSibling).remove();
$(this).remove();
}
});
});
我想删除包含<br>
符号的:
,但是使用indexOf并不起作用,为什么?我控制nodeValue,它确实选择了正确的DOM。
答案 0 :(得分:3)
如果仔细查看符号:在字符串中,您将看到它不是字符:
(冒号)。要检查它只是从字符串中复制它并使用charCodeAt
方法,如下所示:
':'.charCodeAt(0)
它会给你65306,这是“FULLWIDTH COLON” - http://www.fileformat.info/info/unicode/char/ff1a/index.htm
要搜索它,只需用以下代码替换代码中的冒号:
$(document).ready(function () {
$('br').each(function () {
var nodeValue = this.nextSibling.nodeValue;
if (nodeValue.indexOf(':') > -1) {
$(this.nextSibling).remove();
$(this).remove();
}
});
});
但最好使用数字形式和评论:
nodeValue.indexOf('\uFF1A') // FULLWIDTH COLON
答案 1 :(得分:2)
那:不是英国人,而是中国人。这就是为什么你搜索的符号不存在的原因。