私はこのhtmlを持っています
<tr>
<td>Test</td>
<td>324</td>
</tr>
私のデフォルトのCSSはtext-align:left
しかし、私は数字を含むtext-align:center
ものすべてに適用したいと思います。<td>
HTMLファイルが約50個あるので、手動でクラスを追加できません。
私はこのhtmlを持っています
<tr>
<td>Test</td>
<td>324</td>
</tr>
私のデフォルトのCSSはtext-align:left
しかし、私は数字を含むtext-align:center
ものすべてに適用したいと思います。<td>
HTMLファイルが約50個あるので、手動でクラスを追加できません。
あなたはfilter
いくつかの正規表現の魔法を使うことができます:
$('td').filter(function() {
return /^\d/.test($(this).text());
}).css('text-align', 'center');
上記の正規表現は少し単純です。より正確なものが必要な場合は、次の正規表現を使用してください。
/((?!\w+[^\s]))\d+\1/
上記は一致(space)123
します123(space)
が123a
、asd 123
それがあなたが探しているものである場合、基本的には数字とスペースのみが許可されます。有効な文字をさらに追加するには、それらをのよう[^\s,]
に配置します。これにより、カンマ,
も有効になります。
昔ながらのソリューション(うまく機能します):
function Trim(str){
return str.replace(/^\s+|\s+$/g,"");
}
function applyCssCustomToSomeTds(){
for(i=0;i<document.getElementsByTagName('td').length;i++){
var elementTd = document.getElementsByTagName('td')[i];
if(!isNaN(Trim(elementTd.innerHTML))){
elementTd.style.textAlign = "center";
}
}
}
$(function(){
$("td").filter(function(){
return (/^\s*\d*\.?\d+\s*$/).test(this.innerHTML);
}).css("text-align","center");
});
編集:これがjsfiddleです:http://jsfiddle.net/Avf7P/
jqueryを介してクラスを追加する別の例として、このフィドルを確認できます。クラス'centerMe'には、必要なtext-align値が含まれています。
$('td').each(function(){
if($.isNumeric($(this).html()))
{
$(this).addClass('centerMe');
}
});
これはあなたの意図ではないかもしれないisNumericを使用することに注意してください。その場合は、他のいくつかのソリューションで説明されている正規表現アプローチの1つを使用するように、これを変更する必要があります。