我正在尝试调用jQuery text()
函数并通过trim()
函数运行它以删除所有尾随和前导空格。似乎在Firefox中工作得很好,然而,在IE7中不起作用(拒绝删除末尾的空格)。
任何想法?!也许是一个正则表达式的解决方案?
答案 0 :(得分:21)
你很可能已经忘记了jquery chainning ......
试试这个
$('#selector').trim($('#selector').text())
不要懒惰
$('#selector').text().trim();//this is wrong...
修改强>
或@Laserson使用$.trim($(selector).text());
答案 1 :(得分:5)
所以这里是正在发生的事情的要点。我在span元素中有一些文本,在该文本之后有一个超链接/图像,用户可以单击该图像以从其所在的行中删除文本(请参阅下面的代码)。但是,我在span元素文本后面(在超链接的文本中)放了一个
,在span文本和“delete”图像之间放了一些填充。所以,即使我正在访问元素的文本并修剪$.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>
答案 2 :(得分:0)
是的我有个主意。最后的空格不在您调用text()函数的元素中。这可能发生在IE中,因为它以不同于firefox的方式处理空白,并且会给它自己的元素,而firefox则不会。这只是一种预感,因为你的问题不会给你带来太大的影响。
答案 3 :(得分:0)
jquery在trim方法中使用/ ^ \ s + | \ s + / g -
返回后必须添加任何尾随空格。
可能取决于您何时阅读 - 尝试直接从修剪操作提醒值。 如果读取正确,则通过在字符串旁边执行的操作添加空间。
如果trim真的以尾随空格返回,请使用text.replace(/ ^ \ s + | \ s + / g,'')。