点击表格tr
后,我想循环浏览所点击的td
中的每个tr
并获取文字,然后替换每个td
的内容带有一个输入复选框,其中包含该被点击表td
中tr
个文本的值。
我的HTML:
<table>
<thead>
<th>Name</th>
<th>Address</th>
<th>Phone</th>
</thead>
<tbody>
<tr data-id="1">
<td>Jason</td>
<td>USA</td>
<td>Not specified</td>
</tr>
<tr data-id="2">
<td>Micheal</td>
<td>USA</td>
<td>Not specified</td>
</tr>
<tr data-id="3">
<td>Jason</td>
<td>Thailand</td>
<td>222-222</td>
</tr>
</tbody>
我的剧本
$("table tr").click(function(){
$("td", this).each(function(){
var this_text = $("this").text();
//I dont know what to do next here
});
});
为了锐化细节,当点击任何表格tr
时,它将循环到其每个子节目(td)并获取其文本,替换每个孩子的内容( td的内容)带有一个输入复选框,其中包含每个孩子的文本(td&#39; s文本)的值。
答案 0 :(得分:0)
您可以使用:
$("table tr").click(function(){
$("td:not(:has(input))", this).html(function(i,html){
return "<input type='text' value='" + html + "'/>";
});
});
<强> Working Demo 强>
答案 1 :(得分:0)
你可以
def get_emp_det(self, cr, uid, ids, emp_i, context=None):
v={}
if emp_i:
employee = self.pool.get('hr.employee').browse(cr, uid, emp_i, context=context)
if employee.department_id.id:
v['depat'] = employee.department_id and employee.department_id.id or False
if employee.work_email:
v['wk_mail'] = employee.work_email
if employee.work_phone:
v['wk_cnt'] = employee.work_phone
return {'value': v}
&#13;
$("table").on('click', 'tbody tr:not(.editable)', function() {
$(this).addClass('editable')
$("td", this).not(':has(input)').each(function() {
var $input = $('<input />', {
value: this.innerHTML.trim()
});
$(this).html($input)
});
});
&#13;
答案 2 :(得分:0)
只需添加此行
即可 $(this).html('<input type="text" value="'+this_text+'"/>');
所以它会像这样
$("table tr").click(function(){
$("td", this).each(function(){
var this_text = $(this).text();
$(this).html('<input type="text" value="'+this_text+'"/>');
});
});
顺便说一下,你的代码在行
中有错误var this_text = $("this").text();
$("this")
将只是$(this)
<强>更新强>
如果你想在将来保存文本值,请点击你需要做更多编码,如:
$("table tr").click(function(){
$("td", this).each(function(){
var inputFound=$(this).find('input');
if(inputFound.length == 0)
{
var this_text = $(this).text();
$(this).html('<input type="text" value="'+this_text+'"/>');
}
});
});