2012-04-26 55 views
0

如何被点击取的复选框,单击下一步TD的内容

<table> 
    <tr> 
     <td> 
      <input type=checkbox name=t> 
     </td> 
     <td width=25%> 
      FOOBAR 
     </td> 
     <td width=73%> 
      BAZ 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <input type=checkbox name=t> 
     </td> 
     <td width=25%> 
      FOO 
     </td> 
     <td width=73%> 
      BAR 
     </td> 
    </tr> 
</table> 

的复选框,当下次td的内容获取我的JavaScript代码:

var c=new Array(); 
c=window.document.getElementsByTagName('input'); 
for(var i=0;i<c.length;i++) 
{ 
    if(c[i].type=='checkbox') 
    { 
     alert(c[i].parentNode.parentNode.rows[0].innerHTML); 
    } 
} 

我想取单击复选框时下一个td的内容。对于第一行,FOOBAR应该被提取等等。

编辑

需要注意的几点:我敢肯定,我使用 这个问题上的标签。请不要发布任何指向某些JS 库的答案。 jQuery的等

回答

1

这似乎是工作,虽然它是非常 HTML依赖(如涉及当然DOM遍历,很多的JavaScript):

var c = []; 

c = window.document.getElementsByTagName('input'); 

for (var i = 0; i < c.length; i++) { 
    if (c[i].type == 'checkbox') { 
     c[i].onchange = function() { 
      if (this.checked){ 
       console.log(this.parentNode.nextElementSibling.firstChild.nodeValue.trim()); 
      } 
     }; 
    } 
}​ 

JS Fiddle demo

参考文献:

+0

感谢先生。有效。 – 2012-04-26 20:05:33

+1

你的确非常欢迎,我很高兴能够得到帮助! =) – 2012-04-26 20:06:46

+1

它工作正常吗?我认为工作不正常,因为如果您每次点击相同的复选框(选中或未选中),您都将在控制台中进行打印(目的是在刚打勾时打印)。另外,单击“FOOBAR”复选框时将打印相同的值“FOO”,并且永远不会打印“FOOBAR”。纠正我,如果我错了。 – 2012-04-26 20:16:41

0

我已经使用jQuery的。我猜这没关系?

​$('input:checkbox').live('click', function() { 
     alert($(this).parent().next('td').text()); 
    });​​​​​​​​​​​​​​​ 

+1

问题是没有被标注为'jQuery',所以我会假设OP *没有按'*不需要jQuery解决方案,但我想他必须让你知道。另外,应该注意的是'.live()'已经被弃用,而赞成'.on()'。 – 2012-04-26 19:50:25

+0

我知道如何使用jquery。但我不想在我的网站上有这么重要的任务。 – 2012-04-26 19:52:44

+0

@OscarJara - 我想我把这个问题标记得够好。我没有看到我放在那里的任何jQuery代码? – 2012-04-26 20:12:08

0

使用jQuery,会更好,在这里你的解决方案:

$('[type=checkbox]').on('click', function(){ 
    var html; 
    if($(this).is(':checked')) { 
    html = $(this).parent().next('td').html(); 
    alert(html); 
    } 
}); 
​ 

DEMO:http://jsfiddle.net/oscarj24/yYuzS/

+0

我觉得对于标签,使社会作出了选择,同时质疑和我熟悉如何以及何时使用它们。 PS-检查问题标签。 – 2012-04-26 20:05:05

相关问题