Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.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 回文错误的结果。_Javascript_Html - Fatal编程技术网

Javascript 回文错误的结果。

Javascript 回文错误的结果。,javascript,html,Javascript,Html,我正在尝试创建回文检查器。现在似乎我的lengthChecker()不再被调用,条件也不再被调用,只要一个单词不是回文,就说它不是回文。可能是什么问题 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Lesson #6 Homework</title> <script type="text/javascri

我正在尝试创建回文检查器。现在似乎我的lengthChecker()不再被调用,条件也不再被调用,只要一个单词不是回文,就说它不是回文。可能是什么问题

<!DOCTYPE html>
<html>
   <head>
      <meta charset="UTF-8">
      <title>Lesson #6 Homework</title>
      <script type="text/javascript" src="./js/palindrome.js"></script>
   </head>
  <body>
  <h1>Is it a Palindrome?</h1>
  <div id="mainCont">
     <p>Hello. Please enter a word, and I'll see if it is a palindrome.</p>
     <p>Word:
        <input type="text" id="str" name="string" />
        <button id="checkInput">Submit</button>
     </p>
  </div>
  </body>
</html>

您的Javascript链接到
head
元素中,因此在
进入DOM之前执行。将其移动到
正文的末尾
或将其设为
延迟
红色。

,因为您要在页面正确加载之前访问按钮

加载DOM时,需要获取按钮并绑定事件处理程序

document.addEventListener("DOMContentLoaded", function(e) {
    var el = document.getElementById("checkInput");
    el.addEventListener("click", isPalindrome);
});

好像在这里工作?当我在Chrome中测试时,我得到了这个错误。另外,我在做什么使它说[object HTMLInputElement]是回文。我想让它从上到下显示用户的input.HTML负载。在创建任何元素之前加载JavaScript。一般来说,最好的做法是将脚本标记保留在身体的末尾。这也有助于页面加载。谢谢,但当我测试类似于输入cat或dog这样的代码时,它似乎没有触及“不是回文”的问题。脚本标记和正文标记的结尾是否有效?我认为通常它应该在标题标签内?是的,在正文标签的末尾写脚本是有效的和最佳的做法,这被认为是一个相当好的做法。如果您坚持在头部使用脚本,请使用提到的defer属性,或者从绑定到window.onload的函数中调用任何与DOM相关的东西,或者从DOMContentLoaded listener调用任何DOM相关的东西(如其他答案所示)。
document.addEventListener("DOMContentLoaded", function(e) {
    var el = document.getElementById("checkInput");
    el.addEventListener("click", isPalindrome);
});