如何添加动态创建按钮的链接?

时间:2013-07-12 19:55:21

标签: javascript

创建按钮后,无论如何我可以添加链接或使用window.location方法:`window.location ='nextpage.html?foo = number'。我目前有这个

var typeValue = location.search;
var typeStringValue= typeValue.replace("?type=","");
var containers = typeValue.replace("?type=multi","");
var containersValue = parseInt(containers);
var sampleLetter = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"];

function createButton(buttonName){
    var buttonDivBlock = document.getElementById("sampleSets");
    var buttonElement = document.createElement("input");
        buttonElement.setAttribute("type","button");
        buttonElement.setAttribute("name",buttonName);
        buttonElement.setAttribute("value","Sample Set"+" "+buttonName);
        buttonElement.setAttribute("id",buttonName);
        buttonDivBlock.appendChild(buttonElement);
     // document.getElementById(sampleLetter[i]).setAttribute('onclick',window.location='SampleInfo.html'+typeStringValue+bottonName);<!--add the button link -->
}

function setButtons(numberOfContainers){

     for(i=0;i<numberOfContainers;i++){
         createButton(sampleLetter[i]);

     }
}

window.onload = function(){
    setButtons(containersValue);
}

但是document.getElementById("'"+sampleLetter[i]+"'").setAttribute('onclick',window.location='SampleInfo.html'+typeStringValue+bottonName);<!--add the button link --> 返回一个空值。

2 个答案:

答案 0 :(得分:1)

好吧,也许我可以帮助你一个例子:

function getFive() { return 5;}

callOtherFunction("stringArgument", getFive());

callOtherFunction的第二个参数将是5,而不是getFive函数。在许多情况下,比如添加事件侦听器和AJAX代码,您实际上希望将函数本身作为参数传递,因此可以稍后调用它。但是,如果你不想单独声明这个功能,它看起来像这样:

callOtherFunction("stringArgument", function() { return 5; });

为了使代码看起来更干净,您可以在{并创建多行功能之后按Enter键。

现在,考虑到这一点,再看一下你评论过的那一行。你看到缺少什么吗? (PS。对于“egging-on”格式道歉 - 我发现如果我帮助他们找到解决方案,而不是仅仅向他们展示,人们会更好地解决问题)

答案 1 :(得分:0)

sampleLetter变量未定义您尝试使用它的位置(通过注释代码判断)。使用之前几行设置为id属性的值。

document.getElementById(buttonName).setAttribute( /* ... */ );

或者,如果您尝试在循环中而不是createButton函数中设置它,请不要添加单引号

document.getElementById(sampleLetter[i]).setAttribute( /* ... */ );