2011-02-03 19 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>