这样肯定不行啊,后面一次 str="0002"的语句把前面的str的0001值覆盖了,当然出来的都是0001了。你用两个变量分别存放0001和0002就可以了var str1 = "0001";
var td = document.createElement("td");
td.onclick = function()
{
test(str1);
}
td.appendChild(document.createTextNode(str1));
tr.appendChild(td);
var str2 = "0002";
td = document.createElement("td");
td.onclick = function()
{
test(str2);
}
td.appendChild(document.createTextNode(str2));
tr.appendChild(td);
}
var td = document.createElement("td");
td.onclick = function()
{
test(str1);
}
td.appendChild(document.createTextNode(str1));
tr.appendChild(td);
var str2 = "0002";
td = document.createElement("td");
td.onclick = function()
{
test(str2);
}
td.appendChild(document.createTextNode(str2));
tr.appendChild(td);
}
解决方案 »
- JQuery页面关闭 ajax失效
- 在<a>标签里 单击时想要触发onclick,双击时想要触发ondblclick
- 请教各位大侠一个JAVASCRIPT定义方式
- 求一个带Radiobox的树形菜单
- 高分求教 JS的问题
- 怎样在一个图片上,右击出现自己的右键菜单?主要是怎样判断是在一个图片上右击?
- 急!EasyUI中tree和struts2的整合问题
- ●用js如何做到同时显示一个并隐藏另一个的功能呢?
- 关于jQuery下拉框的疑问
- 帮忙看看这个错误,谢谢
- 点击显示一个文字块的JAVASCRIPT交互按钮怎样写
- 如何使用js实现这个excel公式:年差=days360(date1,date2)/360
str="0002"是后复制的。
function test(a)
{
alert(a);
}
function eventTest()
{ var e = document.getElementById("test"); var table = document.createElement("table");
e.appendChild(table);
var tblBody = document.createElement("tbody");
table.appendChild(tblBody);
var tr = document.createElement("tr");
tblBody.appendChild(tr);
var str = "0001";
var td = document.createElement("td");
td.onclick = function(i){return function (){test(i)}}(str);//利用闭包解决
td.appendChild(document.createTextNode(str));
tr.appendChild(td);
str = "0002";
td = document.createElement("td");
td.onclick = function(i){return function (){test(i)}}(str);
td.appendChild(document.createTextNode(str));
tr.appendChild(td);
}
window.onload = eventTest;
</script>
谢谢,确实解决了,可我还是不太理解。
能不能给我解释一下这句话啊,谢谢。td.onclick = function(i){return function (){test(i)}}(str);//利用闭包解决
http://hi.baidu.com/xiaolei1982/blog/item/a941e43fcfa147c07c1e7165.html
先给你偏文章你看看什么叫闭包,其中你就会明白你开始写的例子为什么会
被覆盖,而上面的写法就是解决这种情况的方案
谢谢,确实解决了,可我还是不太理解。
能不能给我解释一下这句话啊,谢谢。 td.onclick = function(i){return function (){test(i)}}(str);//利用闭包解决 --------
js中的匿名函数就是用来解决这个问题的
当然还可以这样
td.onclick = function(){return text(str)};
!sorry
this:
td.onclick = function(){return test(str)};
解决了我的一个大难题,也是我对闭包有所了解。