1

创建按钮后,无论如何我可以添加链接或使用 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 --> 返回一个空值。

4

2 回答 2

1

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

function getFive() { return 5;}

callOtherFunction("stringArgument", getFive());

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

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

为了使代码看起来更干净,您可以在 { 后按 Enter 并创建一个多行函数。

现在,记住所有这些,再看看你注释掉的那行。你看到缺少什么了吗?(PS。为“egging-on”格式道歉——我发现如果我帮助他们找到解决方案,而不是仅仅向他们展示,我发现人们会更好地解决问题)

于 2013-07-12T20:02:26.157 回答
0

sampleLetter变量未在您尝试使用它的地方定义(根据注释代码判断)。使用您刚刚在id几行之前设置的属性值。

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

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

document.getElementById(sampleLetter[i]).setAttribute( /* ... */ );
于 2013-07-12T20:02:54.667 回答