2011-02-03 35 views
1

在HTML頁面中使用Javascript,是否可以計算給定列的單元格中給定文本值的實例?換句話說,如果其中一列包含單元格值「1」或「2」,我可以生成該列中存在多少「2」值的「總」計數?Javascript數HTML列值

+0

你在尋找一個列或行的總數?你在你的問題中提到了兩者。 – JoeyRobichaud 2011-02-03 18:44:31

+0

這個問題的兩個答案(截至撰寫)都是基於jQuery的JavaScript實現。你是否在使用圖書館,或者你需要純粹的JavaScript? – 2011-02-03 18:56:25

回答

3

編輯:關於你的評論:

例子:http://jsfiddle.net/cGS99/

var rows = document.getElementById('myTable').rows, 
    len = rows.length, 
    i, 
    cellNum = 0, 
    count = 0, 
    cell; 

for (i = 0; i < len; i++) { 
    cell = rows[i].cells[cellNum]; 
    if (cell.innerHTML === 'X') { 
     count++; 
    } else if(cell.innerHTML === '...') { 
     cell.innerHTML = count; 
    } 
} 

或者通過與列 「...」,你的意思是最後一列,改變這種:

} else if(cell.innerHTML === '...') { 

這樣:

} else if(i === (len - 1)) { 

示例:http://jsfiddle.net/cGS99/1/


doh!


var rows = document.getElementById('myTable').rows, // get the rows in the table 
    len = rows.length, // get the quantity of rows 
    cell = 1,    // index of the column (zero based index) 
    count = 0;   // keep score 

while(len--) { 
    if(rows[len].cells[cell].innerHTML.indexOf('2') > -1) 
     count++; 
} 

這將工作,只要內容不具有的「2」可能的子字符串,如「12」。

1

聽起來像你正在尋找contains selectorfiddle

<table> 
    <tr> 
     <td>1</td> 
     <td>2</td> 
     <td>1</td> 
     <td>1</td> 
     <td>1</td> 
     <td>2</td> 
    </tr> 
</table 

使用長度

$('td:contains(1)').length 
$('td:contains(2)').length 

輸出:

--> 4 
--> 2 
0

@patrick_dw指出我需要的方向(謝謝!)。這裏的結果適用於我...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> 

<head> 
<title></title> 
<script language="Javascript"> 
function getx() { 
    var rows = document.getElementById('myTable').rows, // get the rows in the table 
    len = rows.length, // get the quantity of rows 
    cell = 0,    // index of the column (zero based index) 
    count = 0;   // keep score 

    while(len--) { 
     if(rows[len].cells[cell].innerHTML.indexOf('1') > -1) 
      count++; 
    } 
    document.getElementById('colx').innerHTML = count; 
} 
</script> 
</head> 

<body onload="getx();"> 

<table id="myTable" border="1"> 
    <tr> 
     <td>1</td> 
     <td>A</td> 
    </tr> 
    <tr> 
     <td>2</td> 
     <td>B</td> 
    </tr> 
    <tr> 
     <td>1</td> 
     <td>A</td> 
    </tr> 
    <tr> 
     <td>1</td> 
     <td>A</td> 
    </tr> 
    <tr> 
     <td>1</td> 
     <td>B</td> 
    </tr> 
    <tr> 
     <td>2</td> 
     <td>A</td> 
    </tr> 
    <tr> 
     <td id="colx"> </td> 
     <td></td> 
    </tr> 
</table> 

</body> 

</html>