2013-08-05 20 views
2

这是我的jsp:在jQuery中如何获取使用复选框选择的表的特定行的值?

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<!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"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
<title>Insert title here</title> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"> 
</script> 

</head> 
<body> 
<table id="one" style="border:1px solid red;"> 
    <caption>Table 1</caption> 
<thead> 
<tr> 
<th></th> 
<th >ID</th> 
<th> Name</th> 
<th>System</th> 
</tr> 
</thead> 
    <tbody> 
     <tr> 
     <td><input type="checkbox" /></td> 
     <td>12</td> 
     <td>Sam</td> 
     <td>FSS</td> 
    </tr> 

    <tr> 
     <td><input type="checkbox" /></td> 
     <td>87</td> 
     <td>Harry</td> 
     <td>MSS</td> 
    </tr> 
    <tr> 
     <td><input type="checkbox" /></td> 
     <td>23</td> 
     <td>Rita</td> 
     <td>MVV</td> 
    </tr> 
    <tr> 
     <td><input type="checkbox" /></td> 
     <td>65</td> 
     <td>Tom</td> 
     <td>RDD</td> 
    </tr> 
    </tbody> 
</table> 

<br><hr><br> 
<button id="add">Add</button> 
</body> 
</html> 

在这里,当我添加按钮单击我想这是在不同的变量,即ID,名称&系统应该包含检查检查了相应的行的所有值值。

我想这些值存储在一个字符串(不是地图)。 可否请你建议我一个jQuery/JS实现folllowing

UPDATE

如果我有一个隐藏字段的勾选框我怎样才能得到它的价值? 例如

<td> 
<input type="checkbox" /> 
<input type="hidden" value="secret" id="alertTyp" /> 
</td> 
+0

如果选择了多个复选框,那么应该发生什么 –

+0

我的意思是说td有一个隐藏的值,那么如何检索这些隐藏的值? – user2077648

+0

如果检查tr 1和2中的复选框,您要查找的输出是什么 –

回答

0

您可以通过所有的行迭代......问题如何performand会是这样:

var str = ''; 
$('#one').find('tbody').find('tr').each(function() 
{ 
    if($(this).children().eq(0).attr('checked') == 'checked') 
    { 
     $(this).find('td').each(function() 
     { 
     str += $(this).text(); 
     }); 
    } 
}); 

或类似的东西...我没有时间大气压来测试这个抱歉。

0

我会做这样的事情(未测试的代码!):

var myRow = $('input[type="checkbox"]:checked').parents('tr:first'); 
var result; 
myRow.children('td').each(){ 
    result += $(this).html() + "|"; 
} 

只有1选中的复选框有这可能是工作...否则,你需要循环所有选中的复选框来获得值...

1

试试这个:

var stringresult = ''; 
$('#add').on('click', function() { 
    $('input:checked').each(function() { 
     $this = $(this); 
     var one = $this.parent().siblings('td').eq(0).text(); 
     var two = $this.parent().siblings('td').eq(1).text(); 
     var three = $this.parent().siblings('td').eq(2).text(); 
     alert(one + ' ' + two + ' ' + three); 

     //or just 
     stringresult += $this.parent().siblings('td').text(); 
    }); 
    console.log(stringresult); 
}); 

DEMO HERE

1

如果你想在<td> S中的字符串,这里是该jQuery代码:

var str = ""; 
$('#add').click(function(){ 
    $('input:checkbox:checked').filter(function(){ 
     str = $(this).closest('tr').text(); 
    }); 
}); 

DEMO

+0

这对我有效,谢谢 – lbramos

相关问题