js 行头checkbox勾选上,取出该行的第二列值,求大家看看代码那有问题。

产吅经理 发布于 2013/03/07 09:15
阅读 1K+
收藏 1
var va = '';
       var checkboxarr=document.getElementsByTagName("checkbox");
        for (var i= 0; i < checkboxarr.length;i++)//
        {
            if(checkboxarr[i].checked)
            {
               var ro = document.getElementById('r_'+i).getElementsByTagName('td');
               va += ro[2].innerText + ';';
            }
        }
        alert(va);

以下是问题补充:

@产吅经理:@铂金小猪 (2013/03/07 09:16)
加载中
0
excepiton
excepiton

var ro = document.getElementById('r_'+i).getElementsByTagName('td');

这种写法没见过

如果这个checkbox是位于第一列的话,我一般通过两个parentNode来获取tr的cell,然后再获取它的第二个childNode

产吅经理
产吅经理
回复 @throwable : parentNode、parentElement,childNodes、children 太深奥了,得慢慢消化
excepiton
excepiton
回复 @Andy.zhou : 还有,getElementsByTagName,checkbox应该不能获取到什么东西,应该是Input
产吅经理
产吅经理
回复 @throwable : 我感觉有getElementByTagName吧。
excepiton
excepiton
回复 @Andy.zhou : document.getElementById('r_'+i)这个返回的是一个DOM,本身有没有getElementByTagName?
产吅经理
产吅经理
这样的 这是获取选择的checkbox 这一行的tr的id。
0
excepiton
excepiton

参考下,更好的一个建议是,在你要获取的那一列加上一个id,同时checkbox里的value值就是那个id,这样就更好获取了

var va = '';
       var checkboxarr=document.getElementsByTagName("input");
        for (var i= 0; i < checkboxarr.length;i++)//
        {
        		var tmp=checkboxarr[i];
            if(tmp.type=="checkbox" && tmp.checked)
            {
               var p1 = tmp.parentNode;
               p1= p1.parentNode;
               var cell = p1.childNodes;
               if(cell && cell.length>=2){
               		var k=0,j=0;
                  for(;j<cell.length;j++){
                  	if(cell[j].tagName=="TD"){
                  		k++;
                  	}
                  	if(k==2){
                  		break;
                  	}
                  }
                  if(k==2 ){
                  	va += cell[j].innerHTML+";";
                  }
               }
            }
        }
        alert(va);

0
只会百度的程序员
只会百度的程序员
// 试试吧
var ro = document.getElementById('r_'+i);
va += ro.cells[1].innerText + ';';
返回顶部
顶部