0

私はこのhtmlを持っています

<tr>
   <td>Test</td> 
   <td>324</td>
</tr>

私のデフォルトのCSSはtext-align:left

しかし、私は数字を含むtext-align:centerものすべてに適用したいと思います。<td>

HTMLファイルが約50個あるので、手動でクラスを追加できません。

4

4 に答える 4

3

あなたはfilterいくつかの正規表現の魔法を使うことができます:

$('td').filter(function() {
  return /^\d/.test($(this).text());
}).css('text-align', 'center');

上記の正規表現は少し単純です。より正確なものが必要な場合は、次の正規表現を使用してください。

/((?!\w+[^\s]))\d+\1/

上記は一致(space)123します123(space)123aasd 123それがあなたが探しているものである場合、基本的には数字とスペースのみが許可されます。有効な文字をさらに追加するには、それらをのよう[^\s,]に配置します。これにより、カンマ,も有効になります。

于 2012-08-31T03:28:40.177 に答える
1

昔ながらのソリューション(うまく機能します):

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";
        }
    }
}
于 2012-08-31T04:03:28.160 に答える
0
​$(function(){
    $("td").filter(function(){
        return (/^\s*\d*\.?\d+\s*$/).test(this.innerHTML);
    }).css("text-align","center");        
});​​

編集:これがjsfiddleです:http://jsfiddle.net/Avf7P/

于 2012-08-31T03:36:01.700 に答える
0

jqueryを介してクラスを追加する別の例として、このフィドルを確認できます。クラス'centerMe'には、必要なtext-align値が含まれています。

 $('td').each(function(){
            if($.isNumeric($(this).html()))
            {
                $(this).addClass('centerMe');
            }
    });

これはあなたの意図ではないかもしれないisNumericを使用することに注意してください。その場合は、他のいくつかのソリューションで説明されている正規表現アプローチの1つを使用するように、これを変更する必要があります。

于 2012-08-31T03:37:31.387 に答える