将jQuery的.text()方法与 进行匹配

17

由于我无法控制的情况,我在SharePoint上有以下代码片段。

var item = $('<span><font size=1>&nbsp;</font></span>').text()

我试图比较.text()的值和&nbsp;,但不知道该怎么做。通过代码调试,item似乎等于“ ”,这很合理。但执行item == " "时返回false。应该如何进行比较?

编辑:示例fiddle

http://jsfiddle.net/hUBeP/2/


它实际上是字符0xA0吗?但我认为这可能取决于浏览器 - 我不想依赖它。它是否与空格正则表达式匹配? - Rup
请查看此链接:https://dev59.com/S2435IYBdhLWcg3wvy05 - Samich
2个回答

46

尝试检查'\xa0'(这是由&nbsp;创建的字符):

var item = $("<span><font size=1>&nbsp;</font></span>").text();
alert("'" + item + "' " + (item == '\xa0'));

http://jsfiddle.net/hUBeP/3/


这样做就行了!@Rup - 它只会在IE中运行,所以浏览器依赖性并不是真正的问题。干杯。 - anothershrubery
实际上,它在Firefox中也可以工作,并且可能也适用于其他浏览器。 - ThiefMaster
是的,我不小心添加了最后一条未完成的评论。现在已更新! - anothershrubery
1
在使用.text()函数向span添加不间断空格时,您也可以使用'\xa0'。 - Tim Scarborough

0
将其与&nbsp;进行比较,因为这是您想要匹配的内容。它似乎不是那样,因为浏览器将其呈现为空格,而不是字符。将其与&nbsp;进行比较应该会导致比较两组&nbsp;,或者比较两个相同的空格。

从技术上讲,我可以将其与 $("<p>&nbsp;</p>").text() 进行比较。但是 ThiefMaster 的解决方案更加简洁。 - anothershrubery
同意,特别是因为您不必担心跨浏览器问题。 - yoozer8

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接