jQuery通过TR ID获取TD内容失败,求问题排查线索
问题分析与解决办法
你的代码核心问题
第一、第三个代码的id选择器错误
你写的$("tr[id='#"+selecteditem+"']")是在匹配id属性值带#的tr,但实际你的tr的id应该是selecteditem本身(比如selecteditem是"row1",tr的id是"row1"而非"#row1"),这个选择器根本找不到对应元素,自然返回空。第二个代码的方法误用
td元素的内容要通过text()或html()获取,val()是用来获取输入框、下拉框这类表单控件的值的,用在td上必然返回空。
正确写法示例
假设selecteditem是目标tr的id值,以下是可行的代码:
获取指定tr下的td文本
// 方法1:通过id选中tr,再取第一个td $("#" + selecteditem).children("td:eq(0)").text(); // 方法2:直接组合选择器定位td $("#" + selecteditem + " td:nth-child(1)").text(); // 方法3:更简洁的写法 $("#" + selecteditem + " td:first").text();
修改指定tr下的td内容
如果要修改文本,给text()传入新内容即可:
$("#" + selecteditem + " td:eq(0)").text("这里是修改后的内容");
额外注意事项
- 确认
selecteditem的值完全匹配目标tr的id,无拼写错误或多余字符 - 确保代码在DOM加载完成后执行,比如包裹在
$(document).ready(function(){ ... })里 - 如果是动态生成的tr,要保证执行代码时该元素已经存在于DOM中
内容的提问来源于stack exchange,提问作者FourK
相关产品推荐
相关产品推荐

