用JS如何获得table中checkbox所在的行列值弄了一个上午了好捉急!

用JS如何获得table中checkbox所在的行列值弄了一个上午了好捉急!,第1张

你可以使用 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 获取所有行列值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10149548.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存