我正在尝试解决这个问题,但还没有得到结果。我试图获取我编辑的行的确切id值以执行更新。
我可以得到我当前的单元格值,但是我无法获得单元格的相应id值。我迭代表id值,然后得到表的所有id值。
我正在使用这个jquery代码进行迭代:
$('#table').ready(function() {
$(this).find('.filename').each( function() {
alert($(this).html());
})
})
然后我尝试了这个简单的JavaScript:
var fid= document.getElementById("filename").textContent;
它只获得表格的第一个id值 例如,如果我编辑第一行,则id值为53 如果我编辑第二行,则id值应为52,但它只有53。
请参阅this link,我之前已发布此问题。
答案 0 :(得分:1)
getElementById
获取元素而不是id。 id是您提供的参数。
你可以这样做:
$('#table').ready(function() {
$(this).find('.filename').each( function() {
alert(this.id);
}) ;
});
您可以随时使用元素的数据属性,而不是使用id(应该始终唯一)来混淆DOM,而不是使用元素的数据属性:
<tr data-identifier="53"><td></td></tr>
$('#table').ready(function() {
$(this).find('.filename').each( function() {
// if this is the row
alert($(this).data('identifier'));
}) ;
});
答案 1 :(得分:0)
我不太确定我理解你的问题,但这会给你一张表中所有单元格的ID:
$("#table > td").each(function(){
alert($(this).attr("id"));
});
答案 2 :(得分:0)
嗨感谢您的回复,我尝试了一个不同的脚本,它正如我想的那样工作 这是代码
function doubleclick(table,id1)
{
table.innerHTML="<input type=text name=tab onBlur=\"javascript:submitNewName(this,'"+id1+ "');\" value=\""+table.innerHTML+"\">";
table.firstChild.focus();
// alert(id1);
}
function submitNewName(text,id2)
{
text.parentNode.innerHTML=text.value;
$.ajax({
url: 'update',
data:{text1:text.value,fileid1:id2},
type:"POST",
dataType:"json",
error:function(data){
//alert('error')
},
success: function(data) {
//alert('updated!')
}
});
}
HTML: //双击时,它将传递$ {item.filedesc},$ {item.id}
<td ondblclick="javascript:doubleclick(this,${item.id});" >${item.filedesc}</td>