如何将变量传递到.innerHTML

时间:2019-04-25 01:23:33

标签: javascript

我正在尝试使用参数将变量放入.innerHTML。但是,每当我尝试传递某些内容时,它往往会给我一个错误,因为它试图查找不存在的项目的innerHTML。我希望内部HTML可针对几种不同的功能进行自定义。

function roll(type, num, type2){
    var total = (Math.floor(Math.random()*type)+1)
    var total2 = total * num;
    type2.innerHTML = total2;
}

d20button.onclick = function(){
    roll(19,1, 'd20p');
}

因此,想法是当我使用不同的onclick按钮时,可以根据用户输入的内容传递不同的变量。但是,它不使用d20p.innerHTML,而是继续使用type2.innerHTML。我想知道是否有一种方法可以使它使用d20p.innerHTML,同时还能将其打开供其他选择使用。

1 个答案:

答案 0 :(得分:1)

'd20p'是在type2中作为roll传递的字符串。字符串没有任何名为innerHTML的属性,因此在访问document.getElementById()

之前应使用innerHTML
function roll(type, num, type2){
    var total = (Math.floor(Math.random()*type)+1)
    var total2 = total * num;
    document.getElementById(type2).innerHTML = total2;
}

如果要更改任何单击的按钮的innerHTML,则可以通过this事件的参数传递onclick作为参数,该事件将引用单击的按钮。

d20button.onclick = function(){
    roll(19,1,this);
} 
function roll(type, num, type2){
    var total = (Math.floor(Math.random()*type)+1)
    var total2 = total * num;
    type2.innerHTML = total2;
}