js 怎么传递一个对象?

问题描述

如:for(vark=0;k<count;k++){varaElem=document.createElement('span');aElem.attachEvent("ondblclick",newFunction("d(aElem)"));}想给其添加一个事件并将对象传入,但这样传不过去,用function(){}传,又不是当前对象,而是最后一个,哪位同仁也遇到此情况了,是否有好的解决方法?谢谢

解决方案

解决方案二:
为什么要newFunction?直接写function(){}不行吗?
解决方案三:
不行啊,这样的话传的是最后一个对象。
解决方案四:
1.根据闭包原理,你在function(){}中可以申明一个变量来赋值,然后对该变量操作;2.从你的例子看,想在ondblclick中得到激活事件的对象,试试srcElement直接获取对象。
解决方案五:
经过测试,楼上的第一个方法不可以,还是提示都是“---2”,第二个方法可以,但有谁知道JS的闭包原理呢,传递一个变化的对象?functionas(){vartb=document.getElementById("tb");vartbdy=document.createElement('tbody');vartr,td;varaElem;for(vark=0;k<3;k++){tr=document.createElement('tr');td=document.createElement('td');aElem=document.createElement('span');//newFunction("d(aElem)")aElem.attachEvent("ondblclick",function(){var_this=aElem;d(_this);});aElem.innerHTML="---"+k;td.appendChild(aElem);tr.appendChild(td);tbdy.appendChild(tr);}tb.appendChild(tbdy);}functiond(x){alert(event.srcElement.innerHTML)alert(x.innerHTML);}
解决方案六:
<html><body><tableid=tb><tr><td>hello</td></tr></table></body><script>functionas(){vartb=document.getElementById("tb");vartbdy=document.createElement('tbody');vartr,td;varaElem;for(vark=0;k<3;k++){tr=document.createElement('tr');td=document.createElement('td');aElem=document.createElement('span');setEvent(aElem);aElem.innerHTML="---"+k;td.appendChild(aElem);tr.appendChild(td);tbdy.appendChild(tr);}tb.appendChild(tbdy);}functionsetEvent(aElem){aElem.attachEvent("ondblclick",function(){d(aElem);});}functiond(x){alert(x.innerHTML);}as();</script></html>
解决方案七:
该回复于2010-12-08 10:26:03被版主删除
解决方案八:
该回复于2010-12-10 10:28:57被版主删除
解决方案九:
该回复于2010-12-10 15:09:59被版主删除

时间: 2024-09-10 06:39:39

js 怎么传递一个对象?的相关文章

利用RegisterStartupScript执行js怎么传递在代码中数组 js中又该如何接

问题描述 在代码中有数组需要传递给js怎么传递js中如何接js中需要弹出一窗口又如何把数组传递给该窗口 解决方案 解决方案二:可以通过showModalDialog的第二个参数来传入参数,也可以通过url来传递.

js ajax传递的对象中有数组后台怎么接收

问题描述 js ajax传递的对象中有数组后台怎么接收 {t1:'aa',t2:['a','b']} 我用jquery ajax向后台传对象,对象里面有数组,在后台怎么正确接收数组. 解决方案 spring mvc 接收ajax传递来的数组对象 解决方案二: 什么语言?找你使用的服务器端语言,一般都有对应的json反序列化对象,如asp.net的json.net {}对应类,[]对应数组 解决方案三: 接收整个json之后取出t2,然后强转为数组 解决方案四: 得看用什么方式把字符串转为对象.g

js 值传递问题 在线急等~

问题描述 js 值传递问题 在线急等~ <script> var searchService, markers = []; var citylocation,map,marker = null; var init = function() { var center = new qq.maps.LatLng(31.840996,117.252055); var map = new qq.maps.Map(document.getElementById('container'), { center

java 客户端往服务器端传递一个对象时,总是卡死,求解答。

问题描述 java 客户端往服务器端传递一个对象时,总是卡死,求解答. java 客户端往服务器端用ObjectOutputStream的writeObject()传递一个对象时,总是卡死. java.net.BindException: Address already in use: JVM_Bind java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: sun.applet.Appl

ajax-如何用Ajax传递一个对象集合到jsp页面。

问题描述 如何用Ajax传递一个对象集合到jsp页面. 我想在我的web项目(struts2+hibernate)的首页的页面输出数据库的News这个表的内容,请问具体的代码是怎样的,我都快点疯了. 附我自己写的代码,及供参考,可忽略 在servlet中: public void getNewsList(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

JS URL传递中文参数时出现乱码的处理

原文:JS URL传递中文参数时出现乱码的处理      在浏览器中显示的地址是这样的:   但是按F12调试的时候的地址却变化掉了:               这个肯定是是因为浏览器对url路径默认编码了.这个问题是在我们去取值的时候,得到的就是后面那一大串稀奇古怪的东西.得不到我们想要的值.怎么办呢?这里写出来的只是自己的解决方法,也许不能通用,跟大家分享下,有更好的方法,告我一声.      //得到url中的值 function request(paras){ var url = lo

JS异步传递数组Action接受的实现与疑惑

最近开发中遇到了页面传递数组到Action后台List类型,接受到的list对象并不是想象的按照数组元素位置对应的接受,例如数组的0位置插入到list对象的0位置, 而是数组的全部内容全部插入到了list集合的第一位置.经过反复的试验,没有找到很好的解决办法,只能把这种粗糙的实现方式记录下来,以求抛砖引玉望大家能给出更好的实现方式. 这是jsp页面代码:异步提交数组到Action中: <html> <head> <meta http-equiv="Content-T

js中传递特殊字符(+,&amp;amp;)的方法_javascript技巧

背景: 今天在做一个任务时,用Jquery的Ajax传递一长串字符时,在后台的验证一直不成功,纠结时我了(那个字符串是随机生成的,特长).查了一上午,原来是我生成的字符串中有+号,而在js传递的时候,会理解为是连接字符用的,到了后台就将+号自动变为空格了,所以后台的字符串和前台生成的已经不一样了. 原因: js后自动解析特殊字符,如+号为连接符,解析为空格,&为变量连接符,服务器端接受数据时&以后的数据不显示等等. 解决办法: 1.将字符放到form中,然后用js提交form表单到服务器.

关于aspx, activex, js 如何传递值的问题

问题描述 最近赶鸭上架,大概要搞这么一个东东,搞出一个activeX来读取usbkey里的文件,当然activex是运行在浏览器端的,然后前台的html/aspx需要把这个读取出来的文件通过调用后台的一个方法存进数据库里.整个过程关于这个文件byte流的传递我不很清楚,请大家不吝指教,谢谢.假设activex的objectID是myUSBKeyActiveX,提供了一个返回值为Byte[]getFile()的方法.我知道js可以获取并得到这个getFile()方法的结果,可是问题是在这个aspx