2013-08-05 55 views
0

我有一個表格,我想用「」替換「1」和「」替換「0」。用CSS可以嗎?如何替換CSS中的特定文本?

<table> 
    <tr> 
     <td>1</td> 
     <td>0</td> 
    </tr> 
</table> 
+0

如果你的tds有特定的類或ID,那麼是的。不基於內容。 –

+3

[可能的重複](http://stackoverflow.com/questions/7896402/how-can-i-replace-text-through-css)。 [相關問題](http://stackoverflow.com/questions/11482591/why-is-it-impossible-to-change-content-in-css)。 – ajp15243

+5

這不是CSS的責任 - CSS是對現有內容進行樣式設計,而不是直接創建或操作它。 – Dai

回答

4

這聽起來像jQuery的工作。

HTML

<table> 
    <tr> 
     <td>1</td> 
     <td>0</td> 
    </tr> 
</table> 

jQuery的

$('td').each(function(){ 
    if ($(this).text() == '1') { $(this).text('X'); } 
    if ($(this).text() == '0') { $(this).text(''); } 
}); 
+1

OP在CSS中需要 – Krishna

+0

OP詢問'是否可以使用CSS'。由於它不是真正的CSS替代工具,在不改變HTML的情況下是不可能的,所以我發佈了一個更合適的解決方案。 – Coop

+0

不需要jQuery。只需使用普通的JavaScript。 – Rob

0

如果你確定,你只用CSS

td:first-child:after 
{ 
    content:"X"; 
} 
td:first-child + td:after 
{ 
    content:""; 
} 

但是這需要準確的行爲你可以這樣做工作,你必須有空的列..

<table> 
    <tr> 
     <td></td> 
     <td></td> 
    </tr> 
</table> 

編輯:爲了完成起見,如果你的html就像在問題中看起來那麼簡單,我會用上面的方法去,但是如果你的html更具動態&不可預知,顯然你需要選擇javascript/jQuery方法。

1

你可以做這樣的事情(DEMO):

td { 
    font-size:0; 
} 

td:first-child:after { 
    content: "X"; 
    font-size: 14px; 
} 

但是那醜陋,我個人比較喜歡的JavaScript這樣的任務。所以不要使用這個解決方案。這不是做CSS的任務。

在jQuery中這將是那麼容易,因爲這樣的:

var tds = document.getElementsByTagName('td'); 

for(var i = 0; tds[i]; i++) { 
    if(tds[i].innerHTML == '1') tds[i].innerHTML = 'X'; 
    if(tds[i].innerHTML == '0') tds[i].innerHTML = ''; 
} 
0

你可以用一些visibilityaftercontent

做到這一點:

$('td:contains("1")').text('X'); 
$('td:contains("0")').text(''); 

而不是普通的JavaScript忘記

DEMO http://jsfiddle.net/kevinPHPkevin/hJyd8/

td:nth-child(1) { 
visibility: hidden; 
} 
td:nth-child(1):after { 
    content:"2"; 
    visibility:visible; 
} 
td:nth-child(2) { 
visibility: hidden; 
} 
td:nth-child(2):after { 
    content:"''"; 
    visibility:visible; 
} 
+0

「可見性」的問題在於它會在td中保留0和1的空間。 –