jQuery修剪功能在IE7中不起作用?

时间:2010-03-23 21:18:40

标签: javascript jquery regex string

我正在尝试调用jQuery text()函数并通过trim()函数运行它以删除所有尾随和前导空格。似乎在Firefox中工作得很好,然而,在IE7中不起作用(拒绝删除末尾的空格)。

任何想法?!也许是一个正则表达式的解决方案?

4 个答案:

答案 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();">&nbsp;
    <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,'')。