Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于<;选择id时出现意外标记==时;选择>;_Javascript - Fatal编程技术网

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的值。