javascript - 我正在学习如何将 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();
}
}
解决方案
没关系,我想出了如何做我需要做的事情。我只需要删除全局变量,然后转到现在删除的全局变量的每个引用,并用一行 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();
}
}
推荐阅读
- laravel - 如何在laravel路由中处理可变数量的参数到控制器
- php - 如何在 Windows 10 上制作 PHP CLI 脚本“呼吁关注”?
- c# - 类不能用作 MigrateDatabaseToLatestVersion 的参数
- excel - 将打开的 CSV 复制到另一个现有工作簿
- python - scrapy spider 在启动spider之前添加健康检查
- magento2 - 在magento 2的app/design中覆盖app/code html文件
- visual-studio - MSBuild:仅在发生更改时有条件地运行 webpack
- ruby-on-rails - PostgreSQL on Rails 的最大连接年龄
- j - 尝试安装jqt,它说链接组已损坏
- javascript - 在哪里可以找到带有 solvePnP 的 opencv.js 或如何构建它?