js中onclick传值问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中onclick传值问题相关的知识,希望对你有一定的参考价值。
<input type='button' name='goBackBtn' value='返回' onClick=\"javascript:goBackProd(\'"+all+"\');\" />在js中,要为新打开的页面添加个返回按钮,想在goBackProd方法中传多个值,为什么onClick=\"javaScript:goBackProd(\'"+all+"\',\'"+all2+"\');\"不行,应该怎么写?
onclick=" """在外面,不能再里面
\" 是转义 转义是在""里面才生效
一般在页面中的""里面的js代码,可以不用\" 直接用'就可以了
如果all 和 all2 是变量名
应该是onClick="goBackProd(all,all2)" 很简单 "" 里面就看成js语句
如果all 和all2 是字符数据值
应该是onClick="goBackProd('all','all2')" 也很简单 '在"" 里面就看成"
如果你一定要用"的话
就是onClick="goBackProd(\"all\",\"all2\")" 也很简单 \"在"" 里面就看成"
字符值和字符值相加不需要+号
只有和变量 相加采用+号
onclick外部可以认为没有变量的,所有的变量都是在js环境下的
所以根本没有需要写成
onClick="goBackProd("+all+")" 这样的形式
如果all是一个具体字符串值
也不需要onClick="goBackProd("+"\"all\")"形式,前面说了 在js中都是语句,直接连续书写不需要+号
总之不管是变量还是定值 都没有你那个形式
注:默认环境下, "javascript." 可以省略
对了
你说input是js中的,这是非不得已的方法
但是一定要用的话
你要把整个input进行编译转义
即原来是<input type='button' name='goBackBtn' value='返回'
onClick="goBackProd(all,all2)" />
现在要写成
1:all值在onclick时带入
"<input type='button' name='goBackBtn' value='返回'
onClick=\"goBackProd(all,all2)\" />"
就是说all不需要立即带入,执行点击的时候带入
2:all值现在就带入,以后点击它就执行现在all的参数
那么用"<input type='button' name='goBackBtn' value='返回'
onClick=\"goBackProd('"+all+",'"+all2+"') />"
推荐你用
var 某个input元素=document.createElement("input") 的方法创建 input元素
那么某个input元素.onclick=function(a1,a2)goBackProd(a1,a2) 就可以了 参考技术A
我在chrome浏览器上测试了这个字符串链接,没问题。
测试代码
function goBackProd(arg1, arg2)alert(arg1);
alert(arg2);
var all = 'all';
var all2 = 'all2';
var input = "<input type='button' name='goBackBtn' value='返回' onClick=\\"goBackProd(\\'"+all+"\\',\\'"+all2+"\\');\\" />";
document.body.innerhtml = input;
你的问题是点击之后没有反应吗?
本回答被提问者采纳 参考技术B onClick=\"javaScript:goBackProd(\'"+all+"\');\"改成:onClick="javaScript:goBackProd(all);“
在使用javascript:声明时,其后面的文字会直接被当做代码解释执行的。追问
可是我的这个方法是在js文件里的,就是想通过js来控制这个button的显示,然后执行goBackProd方法
追答测试文件,参数是可以传入的。
是不是处理参数的过程有问题
那你弄那么多反斜杠干什么?而且是乱用
例外,你在onclick事件中使用了+号连接符,目的是连接一些变量,是吧
那你的2个变量:all all2在哪里啊?哪里来的 啊?
就算你有这个2个js变量,也没必要加啊,除非你要用这个变量拼接其他的变量或者字符串,才+,你只是提供一个变量本身,你+他干什么?
<input type='button' name='goBackBtn' value='返回' onClick="var all = 100; goBackProd(all);" />
这样就可以啊追问
这个input是在js文件中的,不是html中的,all是我声明的参数,就是想通过js来让这个按钮显示出来,并且执行goBackProd()方法
参考技术D 你应该这么写:<input type='button' name='goBackBtn' value='返回' onClick="goBackFunc()"/>
function goBackFunc()
goBackProd(all,all2);
js中onclick定义问题
传统的写法是直接在标签中 比如div a li ul等中直接写onclick='函数();' 这么写,但是我见过那种不在这个位置写的,但是我不知道是在什么地方实现这个事件的定义,在js代码中能实现对这个事件的定义吗?
传统写法如:<div class="a1" id="b1" onmousemove="show(1);">选项卡一</div>
这是一个事件吧,onmousemove(); 如果我的选项卡很多,那么在html代码中每个都去写这个事件感觉 一来是难看,而来貌似也不怎么方便,
问题的重点是 :<div class="a1" id="b1" >选项卡一</div> 只写这一串html 其他的都在js中去实现这个div的onmousemove怎么实现呢?
将你要赋值的函数赋到相应的dom上去。
举个例子
fuction myclick
函数块
getelementbyid("a1").onclick = myclick; 参考技术B div的是吧
var d = document.getElementsByTagName('div');
for(var i in d)
d[i].onmousemove = function()
// TODO
;
追问
能行吗? 而且主要的代码部分还跟这个i有关呀,我循环之后只能执行最后面一个i的方法
以上是关于js中onclick传值问题的主要内容,如果未能解决你的问题,请参考以下文章