下面是我写的用来修改 数据的juqery 代码:
//修改数据
function modify(o){
if($(o).val()=="修改"){
var tr = $(o).parent().parent();//获得<tr></tr>对象
var tds = tr.children(); //获得<td></td>数组
var channel=$(tds[0]).text();
var program=$(tds[1]).text();
//将修改之前的频道栏目保存
$("#temprorarychannel").val(channel); //这里用的是两个隐藏域将频道和栏目保存起来,目的是用来和修改之后做比较 如果没有修改 就不提交到服务器处理,这样可以节省带宽
$("#temproraryprogram").val(program);
var inputforchannel = "<input type='text' value='"+channel+"'/>";
var inputforprogram = "<input type='text' value='"+program+"'/>";
tds[0].innerHTML=inputforchannel;
$(tds[1]).html(inputforprogram);
$(o).val("确认修改");
}else
{
var tr = $(o).parent().parent();//获得<tr></tr>对象
var tds=tr.children(); //获得数组
//获得未修改之前的频道和栏目的值
var temproraryProgram=$("#temproraryprogram").val();
var temproraryChannel=$("#temprorarychannel").val();
//获得修改之后的频道和栏目
var html =$(tds[0].innerHTML).val(); //这里获取的是接受修改信息的 文本框的值 我打印了的,一直是修改之后的值,怎么回事?
//
alert(html);
var modifyChannel = $(tds[0].innerHTML).val();
var modifyProgram= $(tds[1].innerHTML).val();
// alert(modifyProgram);
// alert(temproraryProgram==modifyProgram&&temproraryChannel==modifyChannel);
if(temproraryProgram==modifyProgram&&temproraryChannel==modifyChannel){
tds[0].innerHTML=temproraryChannel;
tds[1].innerHTML=temproraryProgram;
}else{
$.post("ModifyChannelProgram",{
channel:temproraryChannel,
program:temproraryProgram,
command:"modify",
modifychannel:modifyChannel,
modifyprogram:modifyProgram
},function(returnData, status){
if(returnData=="success"){
//显示成功提示信息
}else{
//显示失败提示信息
}
});
}
$(o).val("修改");
}
}
请碰到过类似经历的同学解答,我之前也写过这样的修改的,但是我用的是ID 属性,而且 ID属性都是动态生成的,但是这样拼接字符串很麻烦。我想我是获取的元素的
innerHTML 是一个完整的 html 标签 然后 通过$() 封装成 jquery 对应 再调用里面的方法 但是 获取的是原来修改之前的值,请问 怎样可以把动态获取的 html 标签 封装成 juery 对象
|