你可以使用 JavaScript 中自带的 rowIndex 和 cellIndex 来获取行和列的键值 (从0开始)
点击 checkbox,获取 parentNode (也就是 td),tdcellIndex 就是所在列的键值
点击 checkbox,获取 parentNodeparentNode (也就是 tr),trrowIndex 就是所在行的键值
<script type="text/javascript">// 点击
documentonclick = function(e) {
// 兼容 event 和 target
e = e || windowevent;
var target = etarget || esrcElement;
// 确认是 checkbox
if(targettagNametoLowerCase() === "input"
&& targettype === "checkbox") {
// 获取行列键值
var row_num = targetparentNodeparentNoderowIndex;
var col_num = targetparentNodecellIndex;
// 输出
alert(row_num + " " + col_num);
}
};
</script>
因为键值是从 0 开始,一般需要 +1 才是行列数,但因为你表单中第一行个第一列都是文字,所以不需要 +1 正好输出需要的数字,例如点击周四 + 6,会输出 4 6
function countRow()
{
var trcount=0;
var sumtr=documentgetElementsByTagName("tr");
for(int i=0;i<sumtrlength;i++)
{
if(sumtrparentElementname="yourtablename")
{
trcount++;
}
}
alert(trcount);
//yourtablename是你要计算的表的名。如<table name='yourtablename'>
}
试一下,不一定能行
easyui-datagrid怎么获取所有行列值方法:
1、定义id为datagrid的easyui-datagrid,并将其置于id为div-dg的div内;
2、定义datagrid的列时,使用下面的方式为datagrid添加文本框列,并将其value设置为100;
3、使用如下的方式获取文本框列的第一个值,使用eq(index)方法可以获取第任意个文本框的值;
4、结果并未能如愿,查看生成的html源代码;
5、发现,生成的文本框列位于id为div-dg的div内,而不是id为datagrid的table下面,所以才会出现前面所述的结果。正确的获取文本框列的值的方法如下。
如需获取每一行的行列值,内容如下:
css的选择器 nth-child(N) 用于匹配属于其父元素的第 N 个子元素,因此获取table的某列可用如下核心代码
1
$("table tr")find("td:nth-child(n)"); // 获取table所有行第一列
实例演示:点击按钮获取第一列中含有字符1的行标
创建Html元素
1
2
3
4
5
6
7
8
9
10
11
<div class="box">
<span>点击按钮获取第一列中含有字符1的行标:</span>
<div class="content">
<table class="test">
<tr><td>1</td><td>2</td><td>3</td></tr>
<tr><td>4</td><td>5</td><td>6</td></tr>
<tr><td>71</td><td>8</td><td>9</td></tr>
</table>
</div>
<input type="button" value="获取第一列含有字符1的行">
</div>
设置css样式
1
2
3
4
5
divbox{width:300px;padding:20px;margin:20px;border:4px dashed #ccc;}
divbox>span{color:#999;font-style:italic;}
divcontent{width:250px;margin:10px 0;padding:20px;border:2px solid #ff6666;}
table{border-collapse:collapse;}
td{width:30px;height:30px;line-height:30px;text-align:center;border:1px solid green;}
编写jquery代码
1
2
3
4
5
6
7
8
$(function(){
$("input:button")click(function() {
num = $("tabletest tr")find("td:nth-child(1)")map(function(index, elem) {
return $(elem)html()indexOf("1")>=0 index+1 : null;
})get()join(',');
alert("第一列中包含字符1的行为:"+num);
});
});
jQuery 遍历的 eq() 方法将匹配元素集缩减值指定 index 上的一个,index表示元素的位置(最小为 0)。所以获取Table第 i 行第 j 列的内容可用如下代码
1
$("table")find("tr")eq(i-1)find("td")eq(j-1)text(); // 注意-1是因为index从0开始计数
实例演示
创建Html元素
<div class="box">
<span>填写行列数,点击按钮后获取对应位置的数值:</span>
<div class="content">
<table>
<tr><td>1</td><td>2</td><td>3</td></tr>
<tr><td>4</td><td>5</td><td>6</td></tr>
<tr><td>7</td><td>8</td><td>9</td></tr>
</table>
</div>
第<input type="text" name="row">行,第<input type="text" name="col">列<input type="button" class="btn" value="确定">
</div>
添加css样式
divbox{width:300px;height:250px;padding:10px 20px;border:4px dashed #ccc;}
divbox>span{color:#999;font-style:italic;}
divcontent{width:250px;height:100px;margin:10px 0;padding:5px 20px;border:2px solid #ff6666;}
input[type='text']{width:35px;height:30px;border:1px solid #99ccff;}
input[type='button']{width:100px;height:30px;margin:10px;border:2px solid #ebbcbe;}
selected{background:#99ccff;}
table{border-collapse:collapse;}
td{padding:5px 10px;border:1px solid green;}
编写jquery代码
$(function(){
$("input:button")click(function() {
row = $("input[name='row']")val() - 1;
col = $("input[name='col']")val() - 1;
val = $("table")find("tr")eq(row)find("td")eq(col)text();
alert(val);
});
})
观察显示效果
给tr一个id,然后获取
//XX是id,string是获得的值
var row = documentgetElementById('XX');
var string = rowinnerHTML;
easyui-datagrid怎么获取所有行列值方法:
1、定义id为datagrid的easyui-datagrid,并将其置于id为div-dg的div内;
2、定义datagrid的列时,使用下面的方式为datagrid添加文本框列,并将其value设置为100;
3、使用如下的方式获取文本框列的第一个值,使用eq(index)方法可以获取第任意个文本框的值;
4、结果并未能如愿,查看生成的html源代码;
5、发现,生成的文本框列位于id为div-dg的div内,而不是id为datagrid的table下面,所以才会出现前面所述的结果。正确的获取文本框列的值的方法如下。
如需获取每一行的行列值,内容如下:
表格的第一行为thead中的th
剩下的数据放到tbody中
最后那一行添加的放到tfoot中
对tbody下面的所有tr绑定一个点击事件
事件中获取这个tr下的所有td,就可以获取这行的数据了
大概代码如下:
var trs =documentgetElementById("tbodyId")getElementsByTagName("tr");
for(int i=0;i<=trslength;i++)
{
var tr = trs[i];
var tds=trgetElementsByTagName("td");
//下面遍历tds就可以去获取数据了
//把数据放到下面的表单就好了
//然后提交数据,在服务端进行修改
}
以上就是关于用JS如何获得table中checkbox所在的行列值弄了一个上午了好捉急!全部的内容,包括:用JS如何获得table中checkbox所在的行列值弄了一个上午了好捉急!、如何获取table里面一共有多少条数据,就是有多少行!!!、easyui-datagrid 获取所有行列值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)