Javascript 如果未找到子字符串,则为文本添加前导空格
我正在尝试对齐表中某列的文本。因此,如果文本没有星号,我尝试在文本中添加一个前导空格 以下是我想到的(不起作用): 如果不是,这是一个更好的方法吗?请建议 例如:第一列中的数据现在看起来像Javascript 如果未找到子字符串,则为文本添加前导空格,javascript,jquery,css,Javascript,Jquery,Css,我正在尝试对齐表中某列的文本。因此,如果文本没有星号,我尝试在文本中添加一个前导空格 以下是我想到的(不起作用): 如果不是,这是一个更好的方法吗?请建议 例如:第一列中的数据现在看起来像 *S10054472 Active 50000 11-506843 Active 95000 12-59949 Active 12500 12-5709 Active 12750 *11-499979 Active 323
*S10054472 Active 50000
11-506843 Active 95000
12-59949 Active 12500
12-5709 Active 12750
*11-499979 Active 3232
应该像
*S10054472 Active 50000
11-506843 Active 95000
12-59949 Active 12500
12-5709 Active 12750
*11-499979 Active 3232
试试这个
剧本
加成
我认为这应该足够简单:
$('table td:contains("*")').prepend(document.createTextNode(' '));
它需要
document.createTextNode
而不是带有空格的简单字符串,因为jQuery的.prepend()
需要一个DOM元素或jQuery对象。只需在该列上使用文本对齐:右
,可能会更容易一些……这不起作用,因为第一列中的文本大小不固定。这是您自己创建的表吗?在这种情况下,使用JS就太过分了。为什么需要使用星号呢insensitive@Ejay:我的评论不符合要求(是的,我没有注意到g,只是I)。道歉。
$('table tr').find('td:first').filter(function(){
return !$(this).text().match(/^\*/)
}).css('padding-left', '6px')
<table>
<tr>
<td>*S10054472</td>
<td>Active</td>
<td>50000</td>
</tr>
<tr>
<td>11-506843</td>
<td>Active</td>
<td>95000</td>
</tr>
</table>
$('table tr').find('td:first').filter(function(){
return this.innerHTML[0] != '*'
}).css('padding-left', '6px')
$('table td:contains("*")').prepend(document.createTextNode(' '));