javascript - JQuery 函数中的 For 循环
问题描述
我正在尝试在 JSP 文件中使用 JQuery 创建一堆选项卡。for 循环似乎不会多次执行。我期待看到创建的两个选项卡 + 5 个选项卡。我只看到“登录”、“注册”和“新标签 0”标签。我究竟做错了什么?我对此完全陌生。在此先感谢您的帮助
下面是整个 index.jsp 文件,for 循环位于文件底部的脚本标签内
$((function() {
var tabs = $("#container").tabs();
var maxVal = 5;
var i = 0;
for (i = 0; i < 5; i++) {
var ul = tabs.find("ul");
$("<li><a href='#newtab'>New Tab " + i + " </a></li>").appendTo(ul);
$("<div id='newtab'>Name :<input type='text'></input></div>").appendTo(tabs);
tabs.tabs("refresh");
tabs.tabs('select', 1);
};
}))
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<div id="container">
<div id="tabs">
<ul>
<li><a href="#login">Login</a></li>
<li><a href="#register">Register</a></li>
</ul>
<div id="login">
<label for="email">Email:</label> <br /> <input type="text" name="email" id="email" /> <br /> <label for="password">Password:</label>
<br /> <input type="password" name="password" id="password" /> <br />
<br /> <input type="submit" value="Login">
</div>
<div id="register">
<label for="name">Name:</label><br /> <input type="text" name="name" id="name" /> <br /> <label for="email">Email:</label><br />
<input type="text" name="email" id="email" /> <br /> <label for="password">Password:</label><br /> <input type="password" name="password" id="password" /> <br /> <label for="address">Address:</label><br />
<input type="text" name="address" id="address" /> <br /> <br /> <input type="submit" value="Register">
</div>
</div>
</div>
解决方案
您可以通过更改行来解决此特定问题:
tabs.tabs('select', 1);
成为
tabs.tabs("option", "selected", 1);
但是,您可能还需要考虑其他一些问题。您在循环中执行的工作超过了必要的工作量,我不清楚您打算在哪里添加每个选项卡,以及您是否真的在需要的地方添加它们。
最后,请研究如何在您使用的任何浏览器中使用 javascript 控制台。运行您的代码会产生一个错误:Uncaught Error: no such method 'select' for tabs widget instance
这肯定会帮助您追踪问题。
推荐阅读
- r - 修改列以包含唯一字符组合
- html - 我似乎无法显示背景图像。背景图像显示一瞬间,但随后崩溃“无法执行 CreateElement”
- amazon-ec2 - terraform 初学者:我的 EC2 实例去哪儿了?
- weblogic - Weblogic 服务器不会启动,因为其中部署了一个 bad.jar。但我无法启动管理控制台,以删除 .jar
- ruby - XSLT如何根据不同的元素节点和属性显示/输出重复值
- android - 使用 getXOffset 和 getYOffset 时出现 MPAndroidChart 错误“方法不会从其超类覆盖”
- linux - 递归删除多个目录下名为`log`的文件
- amazon-web-services - 有没有办法强制使用 AWS CodeDeploy 进行全新部署?
- asp.net-core-mvc - 在 ASP.NET Core 3.0 API 中,如何实现 JWT Bearer Tokens
- java - 当我在 Activity 中调用构造函数时应用程序崩溃