首页 > 解决方案 > 我正在学习如何将 javascript 转换为 jquery,但无法通过全局变量正确转换

问题描述

这是javascript中原始代码的摘录。对于全局变量,我将如何将它们转换为 jquery,以便稍后在代码中重新使用它们,因为我继续将其全部转换为 jquery?

/* global variables tracking status of each form section */
var acresComplete = true;
var cropsComplete = true;
var monthsComplete = true;
var fuelComplete = true;

/* global variables referencing sidebar h2 and p elements */


var messageHeadElement = document.getElementById("messageHead");
var messageElement = document.getElementById("message");

/* global variables referencing fieldset elements */
var acresFieldset = document.getElementsByTagName("fieldset")[0];
var cropsFieldset = document.getElementsByTagName("fieldset")[1];
var monthsFieldset = document.getElementsByTagName("fieldset")[2];
var fuelFieldset = document.getElementsByTagName("fieldset")[3];

/* global variables referencing text input elements */
var monthsBox = document.getElementById("months");
var acresBox = document.getElementById("acres");

/* verify acres text box entry is a positive number */
function verifyAcres() {
   var validity = true;
   var messageText = "";
   try {
      if (!(acresBox.value > 0)) {
         throw "Please enter a number of acres greater than 0.";
      } 
   }
   catch(message) {
      validity = false;
      messageText = message;
      acresBox.value = ""; // remove erroneous entry from input box
   }
   finally {
      acresComplete = validity;
      messageElement.innerHTML = messageText;
      messageHeadElement.innerHTML = ""; // remove any former recommendation heading
      testFormCompleteness();      
   }
}

标签: javascriptjquery

解决方案


没关系,我想出了如何做我需要做的事情。我只需要删除全局变量,然后转到现在删除的全局变量的每个引用,并用一行 jquery 替换它以引用我需要进行的更改。在下面的代码片段中,我删除了侧边栏元素的变量,并使 jquery 代码在没有全局变量的情况下工作。

/* global variables tracking status of each form section */
var acresComplete = true;
var cropsComplete = true;
var monthsComplete = true;
var fuelComplete = true;


/* global variables referencing fieldset elements */
var acresFieldset = document.getElementsByTagName("fieldset")[0];
var cropsFieldset = document.getElementsByTagName("fieldset")[1];
var monthsFieldset = document.getElementsByTagName("fieldset")[2];
var fuelFieldset = document.getElementsByTagName("fieldset")[3];

/* global variables referencing text input elements */
var monthsBox = document.getElementById("months");
var acresBox = document.getElementById("acres");

/* verify acres text box entry is a positive number */
function verifyAcres() {
   var validity = true;
   var messageText = "";
   try {
      if (!(acresBox.value > 0)) {
         throw "Please enter a number of acres greater than 0.";
      } 
   }
   catch(message) {
      validity = false;
      messageText = message;
      acresBox.value = ""; // remove erroneous entry from input box
   }
   finally {
      acresComplete = validity;
      $("#message").text(messageText);
      $("#messageHead").text("");
      testFormCompleteness();      
   }
}

推荐阅读