在线等,急(大神帮帮忙):js动态嵌入html代码,代码中调用函数,当传参为字符串时,函数没有响应

<!DOCTYPE html>



<br> function insert()<br> {<br> var a=&quot;jioho&quot;;<br> var str=&quot;<table><tr><button type='button' onclick='test("+ a+")'>点击</button>&quot;;<br> document.getElementById(&quot;1&quot;).innerHTML=str;<br> }<br> function test(a)<br> {<br> alert(a);<br> }<br>



9个回答

onclick=test('"+a+"') 试一下这个在用单引号把参数包起来!

u014513521
小C大加 浏览器缓存了,导致刚开始使用这个写法不行,关了浏览器,重启就好了,谢谢你了
4 年多之前 回复
u014513521
小C大加 还是不行
4 年多之前 回复

额,代码上传,变乱了,我截一张图图片说明

 var str = "<table><tr><button type='button' onclick=test("+a+")>"

改成onclick=test(a)试试

u014513521
小C大加 这样用,根本没有取到a里面的值
4 年多之前 回复

还是不行,我调试,上面说 jioho 未定义

调试的如下图,图片说明

document.getElementById("1").这是什么呀?传值加引号

u014513521
小C大加 额,1只是一个 div的 id号,也可以用其他东西表示,我这里为了测试,就用了 1
4 年多之前 回复

你先直接把a的值填入test方法的参数里,不要用var进行声明 试一下 效果

u014513521
小C大加 不用var 了 a就是一个全局变量了,可以响应,但与我实际的工作要求不符合的
4 年多之前 回复

作用域问题,你的test()在页面中执行时,并没有定义变量a。图片说明
要这样写

u014513521
小C大加 你说的对,可是我的本意是,在insert()中的得到一个变量的值,然后传到test()里面去调用,已经解决了,还是要谢谢你
4 年多之前 回复

借用楼上的说法,改好后是下面的,谢谢各位了图片说明

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问

相似问题