this.editUser = function (id) {
var user = this.getUserById(id);
var html = '<td><input type="checkbox" name="selectBox" value="'+user['id']+'" onchange="javascript:this.onChangeSelect('+user['id']+');"></td>';
html += '<td><input type="text" id="name_'+user['id']+'" name="name" value="'+user['name']+'"></td>';
html += '<td><input type="text" id="birthday_'+user['id']+'" name="birthday" value="'+user['birthday']+'"></td>'
html += '<td><input type="radio" value="M" name="gender_' +user['id']+'"';
if(user['gender'] == 'M') html += ' checked="checked"';
html += '> 男 <input type="radio" name="gender_'+user['id']+'" value="F"';
if(user['gender'] == 'F') html += ' checked="checked"';
html += '>女</td>';
html += '<input type="button" value="保存" onclick="javascript:this.saveUser('+id+');"> <input type="button" value="取消" onclick="javascript:this.cancelEditUser('+id+')"></td>';
document.getElementById('row_'+id).innerHTML = html;
}
html只认识window的对象,我要怎么改动才可以实现在html中调用这个对象中的方法呢???
var user = this.getUserById(id);
var html = '<td><input type="checkbox" name="selectBox" value="'+user['id']+'" onchange="javascript:this.onChangeSelect('+user['id']+');"></td>';
html += '<td><input type="text" id="name_'+user['id']+'" name="name" value="'+user['name']+'"></td>';
html += '<td><input type="text" id="birthday_'+user['id']+'" name="birthday" value="'+user['birthday']+'"></td>'
html += '<td><input type="radio" value="M" name="gender_' +user['id']+'"';
if(user['gender'] == 'M') html += ' checked="checked"';
html += '> 男 <input type="radio" name="gender_'+user['id']+'" value="F"';
if(user['gender'] == 'F') html += ' checked="checked"';
html += '>女</td>';
html += '<input type="button" value="保存" onclick="javascript:this.saveUser('+id+');"> <input type="button" value="取消" onclick="javascript:this.cancelEditUser('+id+')"></td>';
document.getElementById('row_'+id).innerHTML = html;
}
html只认识window的对象,我要怎么改动才可以实现在html中调用这个对象中的方法呢???
解决方案 »
- 如何使用html5标签
- 请问:如何用js获取状态栏里显示的链接?
- 页面内容比较宽,右侧内容打印不出来,咋办?
- 这段脚本可以解密吗?
- 50分急求一个页面切换按纽!(在线等)
- 一个奇怪的问题
- 在js中有没有办法获取一个变量的名字啊?比如说:var _Flat_Theme = new Object(); 使用一个函数 fnGetVarName(_Flat_Theme) 就能够返回
- 孟子有问题请教你,望赐教!
- ie5和ie6的问题,在线等待,分不够还可以在给
- 二进制流前端显示图片的问题,求教
- Jquery 取select 值问题
- IE9之前这样调用JS文件内函数无问题到了IE10就用打开兼容模式才可以了?
在上面这句之前定义 var window.aaaaa=this;
然后在onclick里面把this换成 aaaaa
比如:var bbbb=new 你的func('bbbb');然后在function的定义里面引入一个参数function 你的func(canshu){//然后在onclick里面把this换成 canshu 类似
html += '<input type="button" value="保存" onclick="javascript:'+canshu+'.saveUser('+id+');">
}
var user = this.getUserById(id); /////////// /////////// /////////// /////////// ///////////
var me = this; ///////////
var tr = document.getElementById('row_' + id), td = tr.insertCell(0);
var input = document.createElement('input');
input.type = "checkbox";
input.name = "selectBox"
name.value = user['id']
input.onchange = function () { me.onChangeSelect(user['id']); } var html = '<td><input type="checkbox" name="selectBox" value="' + user['id'] + '" onchange="javascript:this.onChangeSelect(' + user['id'] + ');"></td>';
/////////// /////////// /////////// /////////// /////////// //下面的也按照上面的DOM方法来操作
html += '<td><input type="text" id="name_' + user['id'] + '" name="name" value="' + user['name'] + '"></td>';
html += '<td><input type="text" id="birthday_' + user['id'] + '" name="birthday" value="' + user['birthday'] + '"></td>'
html += '<td><input type="radio" value="M" name="gender_' + user['id'] + '"';
if (user['gender'] == 'M') html += ' checked="checked"';
html += '> 男 <input type="radio" name="gender_' + user['id'] + '" value="F"';
if (user['gender'] == 'F') html += ' checked="checked"';
html += '>女</td>';
html += '<input type="button" value="保存" onclick="javascript:this.saveUser(' + id + ');"> <input type="button" value="取消" onclick="javascript:this.cancelEditUser(' + id + ')"></td>';
document.getElementById('row_' + id).innerHTML = html;
};
this.saveUser和editUser平级?
obj.init();
就这样调用。但是我在createTable里面写的方法就比如上面的那个editUser里面的html不是有onclik,onchange事件,他不认识this.saveUser这样的对象方法
是的。我想获取保存按钮在的行的值,保存它们,这个保存函数我是已经写好了的。我用了刚刚wdbjsh说的方法已经实现了。可是我再new 一个实例出来就又出错了。。
就在你的createTable函数最尾部加上window["editUser"]=this.editUser;等等其他this.xxx函数或者换成dom的方式
这样写就是因为你的onclick="javascript:this.saveUser(' + id + ');"中的this在运行时会window,而你的saveUser是在var obj=createTable();的obj中,obj才是属于window中,所以让你把“obj”传过去,重新链接起来。我让你
在你的createTable函数最尾部加上window["editUser"]=this.editUser;等等其他this.xxx函数
只是把它的层级给直接提升到window了。
1是拼接对象名,把字符串this替换掉。
2是把saveUser提升,作为window的直接属性。要不就是dom,用代码的方式注册事件,就可以利用闭包捕获到这个saveUser函数了。