JQuery只修剪领先的空白区域?

Dan*_*der 1 html javascript jquery

我正在发布一个JSP应用程序,它有一个带有动态生成数据的表头(我认为它叫做Jasper Reports?),我无法访问输出的任何模板文件.我用一些JQuery foo让事情看起来很不错.

但我仍然有一个问题,在标题td> spans中的某些span标签中似乎有空格:

<td><span> My Heading</span></td>
Run Code Online (Sandbox Code Playgroud)

请注意单词"我的"之前的空白区域.

我找到了这个漂亮的代码来修剪空白区域,但问题是它需要占用所有空白区域.

var pane = $('span');
pane.val($.trim(pane.val()).replace(/\s*[\r\n]+\s*/g, '\n')
    .replace(/(<[^\/][^>]*>)\s*/g, '$1')
    .replace(/\s*(<\/[^>]+>)/g, '$1'));
Run Code Online (Sandbox Code Playgroud)

所以现在使用这段代码,它最终成为:

   <td><span>MyHeading</span></td>
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想修改它,所以只删除了第一个空格,但之后没有删除.

ope*_*pes 5

试试这个:

.replace(/^\s+/g, "");
Run Code Online (Sandbox Code Playgroud)

这应该修剪字符串开头的任何空格.或者,您可以使用稍微不同的表达式修剪尾随空格.看这里:

http://www.toptip.ca/2010/02/javascript-trim-leading-or-trailing.html

这是一个例子,你可以看看它是如何工作的:http: //jsfiddle.net/CkMPH/


Gab*_*vel 5

使用.text()得到的字符串值.

var pane = $('span');
pane.html($.trim(pane.text()));
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/gaboesquivel/cHevR/

编辑: 上面的代码将无法正常工作,因为它覆盖了文本,如果文档中有超过1个跨度

您需要迭代跨度数组

//array of all the spans that are children of a td element
var spansArray = $('td > span');
//iterate the array
spansArray.each(function() {
    var $this = $(this);
    $this.html($.trim($this.text()));
});?
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/gaboesquivel/cHevR/2/