【问题标题】:Having trouble displaying code无法显示代码
【发布时间】:2017-06-11 05:50:51
【问题描述】:

如何让这段代码显示在屏幕上?我正在制作一个程序,它会注意到一个字母何时乱序,即 abce 它会显示 d。我已经让核心功能正常工作,但我无法显示它。这是我到目前为止所得到的。谢谢。

HTML

<form id="Awesome">
  <label>Input Text Here: </label><input type="text" id="txtBox">
  <br><br>
  <label>Missing Letter: </label><input type="text" id="Results">
  <br><br>
  <input type="button" value="Calculate" id="Execute" onclick="displayMissingLetter()">
</form>

Javascript

function displayMissingLetter(str) {
  var numbers = str.split('').map(function(letter) {
    return letter.charCodeAt(); 
  });

  for (var i = 0; i < numbers.length; i++){
    if (numbers[i+1] - numbers[i] > 1){
      return String.fromCharCode(numbers[i] + 1);
    }    
  }

  return undefined;
}

【问题讨论】:

  • displayMissingLetter 的结果应该如何处理?

标签: javascript html string loops for-loop


【解决方案1】:
function displayMissingLetter() {
  var str = document.getElementById('txtBox').value;
  var letters = []; 

  var numbers = str.split('').map(function(letter) {
     return letter.charCodeAt(); 
  });


  for (var i = 0; i < numbers.length; i++){
    if (numbers[i+1] - numbers[i] > 1){
        letters.push(String.fromCharCode(numbers[i] + 1));
        }    
    }
  document.getElementById('Results').value = letters.join('');
  return undefined;
}

【讨论】:

  • 感谢您的帮助!
  • 不客气!您只是忘记添加代码来实际操作 DOM 以显示值 :)
【解决方案2】:

第一个问题是您没有将任何参数传递给displayMissingLetter 函数(onclick="displayMissingLetter()")。它需要一个字符串作为第一个参数,这意味着您应该使用类似 onclick="displayMissingLetter(txtBox.value)"

的方式调用它

第二个问题是你没有对这个函数的返回值做任何事情,似乎你想将结果值设置为Results输入的值。如果是这种情况,您可以这样做:onclick="Results.value = displayMissingLetter(txtBox.value)"

另一种方法将使用类似下面的示例。

function getMissingLetter(str) {
  var numbers = str.split('').map(function(letter) {
     return letter.charCodeAt(); 
  });

  for (var i = 0; i < numbers.length; i++){
  if (numbers[i+1] - numbers[i] > 1){
      return String.fromCharCode(numbers[i] + 1);
      }    
  }
  return undefined;
}

Execute.onclick = function(){
  var userInput = txtBox.value;
  var missingLetter = getMissingLetter(userInput);
  if(missingLetter){
     Results.value = missingLetter;
  }
}
<form id="Awesome">
  <label>Input Text Here: </label><input type="text" id="txtBox">
  <br><br>
  <label>Missing Letter: </label><input type="text" id="Results">
  <br><br>
  <input type="button" value="Calculate" id="Execute">
</form>

【讨论】:

    猜你喜欢
    • 2017-11-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 2013-01-15
    • 2013-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多