eval(arrayB[t]);改为eval(eval("aryCode["+i+"]"))
解决方案 »
- 三级下拉菜单,原先是二级的,现在想改三级,第三级目前不随二级的变化而改变。个人猜想是少了js代码,可是我是js菜鸟,请高手帮忙
- 我用jquery做了一个异步的上传图片 但是无法获取文件绝对路径无法上传 请问怎么办
- 大虾帮帮忙:怎样判断一组单选框是否选择
- 求一段自动缓慢关闭脚本,如同新浪,腾讯等大型门网站一样,首页大型广告!
- 怎样在页面上检测事件和事件的对象
- Table中有很多checkbox,如何确定点中的checkbox在哪个单元格里?多谢
- 问一下:网页刷新后定位?
- srcElement有哪些属性?
- asp中默认的语言是vbscript,怎样改成javascript?这样在调用ASP的内建对象时有什么不同?
- 如何在javascript中得到鼠标左键的状态?
- 新手提问JS
- 我从数据库表中取得数据,想在页面以<DIV>格式生成列表,那这个DIV是用JAVASCRIPT动态生成的吗?
var aryName=["从小到大排序","从大到小排序","取消"];
var aryCode=["alert('1')","alert('2')","alert('3')"];
function DrawDiv(arrayA,arrayB,obj){
var aryElement = [];
var br = document.createElement("br");
var thediv = document.createElement(" <div name='customerDiv'>");
thediv.style.width = 120;
thediv.style.height = 100;
thediv.style.left = 500;
thediv.style.top = 600;
thediv.style.zIndex = 50;
thediv.style.position = "absolute";
thediv.style.border = 1;
thediv.style.borderStyle = "solid";
thediv.style.borderColor ="#DDD"
for (i=0;i <arrayA.length;i++){
aryElement[i] = document.createElement(" <a name='customerDivA'>");
aryElement[i].style.display="block"
aryElement[i].innerHTML = arrayA[i];
aryElement[i].onclick = function(){
eval(arrayB[i]);
}
thediv.appendChild(aryElement[i]);
} document.body.appendChild(thediv);
}
</script> <input type="button" value="按钮" onclick="DrawDiv(aryName,aryCode,this)">
var aryName=["从小到大排序","从大到小排序","取消"];
var aryCode=["alert('1')","alert('2')","alert('3')"];
function DrawDiv(arrayA,arrayB,obj){
var aryElement = [];
var br = document.createElement("br");
var thediv = document.createElement(" <div name='customerDiv'>");
thediv.style.width = 120;
thediv.style.height = 100;
thediv.style.left = 500;
thediv.style.top = 600;
thediv.style.zIndex = 50;
thediv.style.position = "absolute";
thediv.style.border = 1;
thediv.style.borderStyle = "solid";
thediv.style.borderColor ="#DDD"
for (i=0;i <arrayA.length;i++){
aryElement[i] = document.createElement(" <a name='customerDivA'>");
aryElement[i].style.display="block"
aryElement[i].innerHTML = arrayA[i];
(function(i){
aryElement[i].onclick = function(){
eval(arrayB[i]);
}
})(i)
thediv.appendChild(aryElement[i]);
}
document.body.appendChild(thediv);
}
</script> <input type="button" value="按钮" onclick="DrawDiv(aryName,aryCode,this)">
var aryName=["从小到大排序","从大到小排序","取消"];
var aryCode=["alert('1')","alert('2')","alert('3')"];
function DrawDiv(arrayA,arrayB,obj)
{
var aryElement = [];
var br = document.createElement("br");
var thediv = document.createElement("div");
thediv.setAttribute("name","customerDiv");
thediv.style.width = 120;
thediv.style.height = 100;
thediv.style.left = 500;
thediv.style.top = 600;
thediv.style.zIndex = 50;
thediv.style.position = "absolute";
thediv.style.border = 1;
thediv.style.borderStyle = "solid";
thediv.style.borderColor ="#DDD"
for (i=0;i <arrayA.length;i++)
{
var t = i;
aryElement[i] = document.createElement("a");
aryElement[i].setAttribute("name","customerDivA");
aryElement[i].style.display="block";
aryElement[i].innerHTML = arrayA[i];
aryElement[i].onclick = function()
{
eval(arrayB[t]);
}
thediv.appendChild(aryElement[i]);
} document.body.appendChild(thediv);
}
eval(arrayB[i]);
}
改为:
(function(i){
aryElement[i].onclick = function(){
eval(arrayB[i]);
}
})(i)哪位高人能解释下4楼的代码吗?不胜感激另外,5楼的帖不知所谓,name属性是不可被setAttribute的,这是常识。
eval(arrayB[i]);
}
改为:
(function(i){
aryElement[i].onclick = function(){
eval(arrayB[i]);
}
})(i)
eval(arrayB[i]);
}
改为:
(function(i){
aryElement[i].onclick = function(){
eval(arrayB[i]);
}
})(i) 比如第一个a,在为它创建onclick的时候i的值是0;但是当运行onclick的时候i的值已经改变(for中的i++),用(function(i){ })(i) 可以说是保持现场吧