【发布时间】:2011-01-31 00:20:42
【问题描述】:
我正在尝试调用 jQuery text() 函数并通过 trim() 函数运行它以删除所有尾随和前导空格。似乎在 Firefox 中运行良好,但是在 IE7 中不起作用(拒绝删除末尾的空格)。
有什么想法吗?!也许是正则表达式解决方案?
【问题讨论】:
标签: javascript jquery regex string
我正在尝试调用 jQuery text() 函数并通过 trim() 函数运行它以删除所有尾随和前导空格。似乎在 Firefox 中运行良好,但是在 IE7 中不起作用(拒绝删除末尾的空格)。
有什么想法吗?!也许是正则表达式解决方案?
【问题讨论】:
标签: javascript jquery regex string
你很可能已经忘记了 jquery 链接...
试试这个
$('#selector').trim($('#selector').text())
不要偷懒
$('#selector').text().trim();//this is wrong...
编辑
或者@Laserson 将其简化得更好,使用$.trim($(selector).text());
【讨论】:
所以这是发生的事情的要点。我在 span 元素中有一些文本,在该文本之后有一个超链接/图像,用户可以单击以从它所在的行中删除文本(参见下面的代码)。但是,我在 span 元素文本(在超链接的文本中)之后放置了一个  ,以便在 span 文本和“删除”图像之间添加一些填充。所以即使我正在访问元素的文本并修剪$.trim($(this).parent().text());,它仍然会在最后包含那个空间!一旦我删除了这个额外的空间,事情就很好了。仍然不知道为什么$.trim() 不会处理它?!
<div>
<span>
<strong>SomeText</strong>
</span>
<a href="javascript:void(0);" onclick="removeMe();">
<img src="delete.png" width="15" height="15" border="0" name="imgRemove" />
</a>
</div>
【讨论】:
$.trim 正在寻找不包括&nbsp; 的实际空白,&nbsp; 是一个编码的非制动空间,就.trim 而言,它认为它只是另一个文本,如 Home 或“汤姆和杰瑞”,希望对您有所帮助
是的,我有一个想法。最后的空格不在您调用 text() 函数的元素中。这可能发生在 IE 中,因为它对空格的处理方式与 firefox 不同,并且会给它自己的元素,而 firefox 不会。这只是一种预感,因为您的问题并没有给出太多内容。
【讨论】:
jquery 在它的 trim 方法中使用 /^\s+|\s+/g-
返回后必须添加任何尾随空格。
这可能取决于您阅读它的时间 - 尝试直接从修剪操作中提醒该值。 如果读取正确,则无论您在字符串旁边做什么,都会添加空格。
如果 trim 确实返回尾随空格,请使用 text.replace(/^\s+|\s+/g,'')。
【讨论】: