如何使用contains匹配含HTML空格的词组及精准查找指定Span
解决jQuery :contains选择器匹配包含 文本的问题
核心问题原因
jQuery的:contains选择器是基于元素的文本内容(textContent/innerText)进行匹配的,而HTML中的 在DOM解析后会转换成Unicode非断空格字符(U+00A0),不是普通的空格(U+0020)。你之前尝试的几种写法要么是把 当作字符串字面量(而DOM里已经是转义后的字符),要么是用普通空格去匹配非断空格,自然无法命中目标元素。
解决方案:使用filter()方法精准匹配
最可靠的方式是用filter()方法手动检查元素的文本内容,直接使用非断空格的转义字符\xa0来构建目标字符串:
1. 精准匹配完全一致的文本
如果你需要找到文本完全等于Select Player To Pre-Draft的span元素:
$('span').filter(function() { // \xa0 是Unicode非断空格U+00A0的十六进制转义 return this.textContent === 'Select\xa0Player\xa0To\xa0Pre-Draft'; }).remove();
2. 匹配包含该文本的元素
如果只需要元素文本包含这段内容(而非完全一致):
$('span').filter(function() { return this.textContent.includes('Select\xa0Player\xa0To\xa0Pre-Draft'); }).remove();
额外技巧:统一转换空格类型(可选)
如果你不确定文本里是普通空格还是非断空格,也可以把两者统一转换后再匹配,比如把元素文本中的非断空格替换成普通空格:
$('span').filter(function() { const normalizedText = this.textContent.replace(/\xa0/g, ' '); return normalizedText.includes('Select Player To Pre-Draft'); }).remove();
这种方式兼容性更强,但如果需要严格区分空格类型,建议还是用第一种精准匹配的方式。
内容的提问来源于stack exchange,提问作者MShack
相关产品推荐
相关产品推荐

