
这种方法和上次给你说的不一样,现在你不需要指定 input 和 td 的 id,只需要 table 有个 id 就可以。JS 会寻找 table 内所有的 input,然后赋值给 td。唯一要保证的是你的 table 结构要和例子中的保持一致。使用传统的 Javascript 确实很费时间,因为现在有各种 Javascript 框架,应用起来比较方便,省时。建议你在基本掌握 Javascript 后学习一下,推荐 jQuery。
<script type="text/javascript">
function assignValues() {
// 设置 table id
var table_id = 'st';
// 获取 table 元素
var table = documentgetElementById(table_id);
// 获取 table 内的全部 input
var textinputs = tablegetElementsByTagName('input');
// 循环
for(var i = 0; i < textinputslength; i++) {
// 将 textinput 的值置于 textinput 上一级 td 节点的下一个同级 td 节点中
textinputs[i]parentNodenextSiblinginnerHTML = textinputs[i]value;
}
};
</script>
<table>
例子中你给出的table
</table>
<input type="button" value="赋值" onclick="assignValues();" />
(1)如果使用javascript *** 作,可以使用孩子节点方法,如下:
documentgetElementById("tableDiv")firstChild即可以获得该table元素;
(2)如果使用jquery库,则可以使用CSS选择器按标签来选择,如下:
$("#tableDiv table")
public void parse(){
String htmlStr = "<table id=kbtable >"
+ "<tr> "
+ "<td width=123>"
+ "<div id=12>这里是要获取的数据1</div>"
+ "<div id=13>这里是要获取的数据2</div>"
+ "</td>"
+ "<td width=123>"
+ "<div id=12>这里是要获取的数据3</div>"
+ "<div id=13>这里是要获取的数据4</div>"
+ "</td> "
+ "</tr>"
+ "</table>";
Document doc = Jsoupparse(htmlStr);
// 根据id获取table
Element table = docgetElementById("kbtable");
// 使用选择器选择该table内所有的<tr> <tr/>
Elements trs = tableselect("tr");
//遍历该表格内的所有的<tr> <tr/>
for (int i = 0; i < trssize(); ++i) {
// 获取一个tr
Element tr = trsget(i);
// 获取该行的所有td节点
Elements tds = trselect("td");
// 选择某一个td节点
for (int j = 0; j < tdssize(); ++j) {
Element td = tdsget(j);
// 获取td节点的所有div
Elements divs = tdselect("div");
// 选择一个div
for (int k = 0; k < divssize(); k++) {
Element div = divsget(k);
//获取文本信息
String text = divtext();
//输出到控制台
Systemoutprintln(text);
}
}
}
}
你可以使用 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
获取到当前滚动加载的el-table表格节点
注意的是 如果存在多个表格,用ref获取dom节点,需要指定为第一个,
并且是当前dom节点下的bodyWrapper元素,
然后给这个元素添加滚动事件
this$nextTick(function(){
var dom =this$refs[`personTable_${thatscrollTableId}`];
var tableBodyEle = dom[0]bodyWrapper;
tableBodyEleaddEventListener('scroll', thatonPersonScroll);
})
滚动加载的判断条件:
let inner = that$refs['personTable_'+thatscrollTableId][0]bodyWrapper;
let scrollTop = innerscrollTop,//当前元素区域的滚动条高度
// 变量windowHeight是可视区的高度
let windowHeight = innerclientHeight || innerclientHeight
// 变量scrollHeight是滚动条的总高度
let scrollHeight = innerscrollHeight || innerscrollHeight
if (scrollTop + windowHeight === scrollHeight) {//滚动条滚出的高度加上可视区高度 等于滚动条的总高度,则需要加载
if (thatscrollPersonFlag) {
//设置一个滚动加载的开关,默认为true
//滚动一次变为false
//滚动一次如果当前数据数量小于总数,要置为true;
thatscrollPersonFlag =false
var signatoryNo = thatscrollTableId;
var pageSize =40;
thatstartPersonRow +=40;
thatloading =true;
_getPersonSignatory({signatureId:thissignatureId,startRow:thatstartPersonRow,pageSize,signatoryNo})then(res=>{//请求数据的接口
thatloading =false;
if(resdatasuccess){
thatruleFormSignerpersonSignerListfrontendDataforEach(item=>{
if(itemsignatoryId == thatscrollTableId){
if(itemmemberListlength < resdataresulttotal){//如果当前滚动加载的盒子中的成员变量小于总数,则开关还是打开状态 否则是关闭状态
thatscrollPersonFlag =true;
}
}
})
}
})
}
}
这个很简单啊
表结构一般如下tablename(表名)
id--节点ID, name-- 节点名称 parentid父节点ID,
-----获取节点号为6下的所有子节点
select from tablename t start with id =6 connect by prior id=parentid
以上就是关于怎样取得table中td里面全部input 的值,到td 中. 新提问全部的内容,包括:怎样取得table中td里面全部input 的值,到td 中. 新提问、用jquery定位div下的table、jsoup解析html的table中的内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)