3
回答
js 行头checkbox勾选上,取出该行的第二列值,求大家看看代码那有问题。
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);
<无标签>
举报
Contac
发帖于5年前 3回/1K+阅

以下是问题补充:

共有3个答案 最后回答: 5年前

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

这种写法没见过

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

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

参考下,更好的一个建议是,在你要获取的那一列加上一个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);

顶部