Javascript不会改变页面内容

时间:2014-10-28 09:30:31

标签: javascript jquery html

当我使用javascript窗口提示输入长度时,此代码运行正常。我现在已将其更改为在html中使用if语句和下拉窗口,它似乎不起作用?一直试图找出问题所在的地方几个小时,如果有人能指出我正确的方向,那真的很感激!

HTML:

<select name="paraSize" id ="paraSize">
  <option value="small">Small</option>
  <option value="medium">Medium</option>
  <option value="large">Large</option>
</select>

的JavaScript:

var getRekt = function() {
  var ipsumLength = 0
  var numberParagraph = document.getElementById("paragraphs").value;
  var paragraphSize = document.getElementById("paraSize").value;
  var startRektIpsum = document.getElementById("startRekt").checked;

  if (paragraphSize === small) {
    (ipsumLength = 9);
  };
  else if (paragraphSize === medium) {
    (ipsumLength = 25);
  };
  else if (paragraphSize === large) {
    (ipsumLength= 38);
  };
  var string = "Rekt Ipsum ";
  var rektIpsum = [
    //Array of words which I won't bore you with
  ];
  for (i = 0; i <= ipsumLength; i++) {
    (string = (string + " " + rektIpsum[Math.floor((Math.random() * (rektIpsum.length)) )]))
  }
  document.getElementById("p1").innerHTML = (string);
}

1 个答案:

答案 0 :(得分:2)

正如我在评论中所指出的那样,问题是语法上的......但解决方案可以简化为

var paragraphSizeMap = {
    small: 9,
    medium: 25,
    large: 38
}
var getRekt = function () {
    var numberParagraph = document.getElementById("paragraphs").value;
    var paragraphSize = document.getElementById("paraSize").value;
    var startRektIpsum = document.getElementById("startRekt").checked;

    var ipsumLength = paragraphSizeMap[paragraphSize] || 0;

    var string = "Rekt Ipsum ";
    var rektIpsum = ['', '', ''];

    for (i = 0; i < ipsumLength; i++) {
        string += " " + rektIpsum[Math.floor(Math.random() * rektIpsum.length)]
    }
    document.getElementById("p1").innerHTML = string;
}