Javascript 基于<;选择id时出现意外标记==时;选择>;
我这里有一些简单的掷骰子代码:Javascript 基于<;选择id时出现意外标记==时;选择>;,javascript,Javascript,我这里有一些简单的掷骰子代码: var dselection = document.getElementById(dieselection); var dice = { if(dselection == 'd6') { sides: 6, roll: function () { var randomNumber = Math.fl
var dselection = document.getElementById(dieselection);
var dice = {
if(dselection == 'd6') {
sides: 6,
roll: function () {
var randomNumber = Math.floor(Math.random() * this.sides) + 1;
return randomNumber;
}
}
if(dselection == 'd8') {
sides: 8,
roll: function () {
var randomNumber = Math.floor(Math.random() * this.sides) + 1;
return randomNumber;
}
}
if(dselection == 'd4') {
sides: 4,
roll: function () {
var randomNumber = Math.floor(Math.random() * this.sides) + 1;
return randomNumber;
}
}
if(dselection == 'd10') {
sides: 10,
roll: function () {
var randomNumber = Math.floor(Math.random() * this.sides) + 1;
return randomNumber;
}
}
if(dselection == 'd12') {
sides: 12,
roll: function () {
var randomNumber = Math.floor(Math.random() * this.sides) + 1;
return randomNumber;
}
}
if(dselection == 'd100') {
sides: 100,
roll: function () {
var randomNumber = Math.floor(Math.random() * this.sides) + 1;
return randomNumber;
}
}
}
//Prints dice roll to the page
function printNumber(number) {
var placeholder = document.getElementById('placeholder');
placeholder.innerHTML = number;
}
var button = document.getElementById('button');
button.onclick = function() {
var result = dice.roll();
printNumber(result);
};
当我尝试用if(dselection=='something')
检查dselection等于什么时,我得到一个错误:掷骰子:80未捕获的语法错误:意外标记==
为什么我不能检查这里是什么?不应该document.getElementById()
获取所选内容的值吗
如果是,为什么我不能简单地将其与所选字符串进行比较
骰子需要根据选择的内容滚动。
以下是我的选择:
<select id="dieselection">
<option value="d4">D4</option>
<option value="d6">D6</option>
<option value="d8">D8</option>
<option value="d10">D10</option>
<option value="d12">D12</option>
<option value="d20">D20</option>
<option value="d100">D100</option>
</select>
D4
D6
D8
D10
D12
D20
D100
不需要所有那些if
语句。您没有看到这样一种模式:sides
属性的值只是dselection
的数字部分吗?所以,只要做:
var dice = {
sides: parseInt(dselection.substr(1), 10),
roll: function () {
var randomNumber = Math.floor(Math.random() * this.sides) + 1;
return randomNumber;
}
};
您也没有将dselection
设置为输入值。应该是:
var dselection = document.getElementById('dieselection').value;
dieselection
是一个变量吗?如果不是,则应加引号。这是无效语法。在对象的中间不能使用<代码>如果语句。<代码> dSudio是一个元素。你的意思是dselection.value
?在var dice={
中的if
肯定是意外的。对象文本的主体也是意外的,if
块。@j08691应该是,我在这里声明它var dselection=document.getElementById(dieselection)
这是同一事物的另一个版本:它返回NaN。我需要指定返回dselection值吗?结果它返回NaN是因为我的select标记。不知道为什么,但不管怎样。您忘了使用.value
来获取select的值。