2012-08-31 3 views
0

나는이 HTML을 가지고CSS를 jQuery의 숫자에만 어떻게 적용 할 수 있습니까?

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

내 기본 CSS는 text-align:left

입니다하지만 숫자가 포함 된 <td>text-align:center을 적용 할.

클래스를 수동으로 추가 할 수 없도록 약 50 개의 HTML 파일이 있습니다. 당신이 한 번 더 정밀 측정을해야하는 경우

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

위의 정규식, 조금 간단하다 : 당신은 filter 일부 정규식 마법을 사용할 수

+0

당신은 무엇을 시도? 힌트 : 각'td'에 대해 내용을 확인하고 클래스를 추가하십시오. –

+0

jquery에서 parseInt() 함수를 사용하십시오.이 숫자를 가져 와서 CSS를 적용 할 수 있습니다 – supersaiyan

+0

셀에 ' Test 123'과 같은 _and_ 숫자가 아닌 숫자가 포함 된 경우 어떻게해야합니까? – nnnnnn

답변

3

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

(space)123 일치합니다 및 123(space)은 아니지만 123a 또는 asd 123이 아니므로 기본적으로 숫자와 공백 만 허용됩니다. 더 유효한 문자를 추가하려면 [^\s,]과 같이 입력하면 쉼표 ,도 유효하게됩니다.

+0

''과 같이 텍스트의 공백은 어떻게됩니까? –

+0

' 123123herp'그 정규식에 기반하여 성공했습니다. 의도적입니까? –

+0

그냥 더 나은 정규 표현식으로 내 질문을 편집 – elclanrs

0
​$(function(){ 
    $("td").filter(function(){ 
     return (/^\s*\d*\.?\d+\s*$/).test(this.innerHTML); 
    }).css("text-align","center");   
});​​ 

편집 : http://jsfiddle.net/Avf7P/

0

fiddle을 확인할 수 있습니다 JQuery와 통해 클래스를 추가하는 또 다른 예를 들어 : 여기 jsfiddle입니다. 'centerMe'클래스에는 필요한 텍스트 맞춤 값만 포함됩니다.

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

의도 한 isNumeric을 사용합니다. 그렇다면 다른 솔루션에서 언급 한 정규식 접근 방법 중 하나를 사용하기 위해이를 수정해야합니다.

+0

이것은 답변이 아니라 주석이어야합니다. – ahren

+0

@ahren - 내가 바이올린의 텍스트를 붙여 넣지 않았기 때문에? – Carth

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"; 
     } 
    } 
} 
관련 문제