javascript - jQuery:如何处理自闭合标签和多个循环?
问题描述
我有 3 个数组:一个包含城市列表,一个包含州列表(对应于城市),另一个只是删除了重复项的州列表。
我正在尝试生成一个如下所示的列表:
- 状态 1
- 城市 1
- 城市 2
- 状态 2
- 城市 3
这是我所拥有的:
$.each(stateArrayUnq, function(i) {
$('#list').append("<li>" + stateArrayUnq[i] + "<ul>");
$.each(stateArray, function(j) {
if (stateArray[j] == stateArrayUnq[i]) {
$('#list').append("<li>" + cityArray[j] + "<\/li>");
}
});
$('#list').append("<\/ul><\/li>");
});
我知道如果不让浏览器过早地自动关闭我的标签,我就无法像这样构建我的代码,但不幸的是,我一点也不知道如何重建它。我已经阅读了一些相关的线程,但我仍然很困惑。我想我应该将“附加”代码设置为变量或其他东西,但我不知道如何处理循环。
感谢您提供的任何帮助。非常感谢!
更新:这是我的数组:
var cityArray = ["Concord", "Lafayette", "Lewisville", "Madison", "NW Freeway Houston", "North Miami", "Casselberry", "South Fort Myers", "SW Freeway", "Woodbury", "Tarpon Springs"]
var stateArray = ["North Carolina", "Louisiana", "Texas", "Wisconsin", "Texas", "Florida", "Florida", "Florida", "Texas", "Minnesota", "Florida"]
var statearrayUnq = ["Florida", "Louisiana", "Minnesota", "North Carolina", "Texas", "Wisconsin"]
解决方案
您可以通过构建一个存储在变量中的 html 字符串来做到这一点。完成逻辑后,您可以附加构建 html 字符串。
//Test data
var cityArray = ["Concord", "Lafayette", "Lewisville", "Madison", "NW Freeway Houston", "North Miami", "Casselberry", "South Fort Myers", "SW Freeway", "Woodbury", "Tarpon Springs"];
var stateArray = ["North Carolina", "Louisiana", "Texas", "Wisconsin", "Texas", "Florida", "Florida", "Florida", "Texas", "Minnesota", "Florida"];
var stateArrayUnq = ["Florida", "Louisiana", "Minnesota", "North Carolina", "Texas", "Wisconsin"];
//Generate the html string and append it.
var html = "";
$.each(stateArrayUnq, function(i) {
html += "<li>" + stateArrayUnq[i] + "<ul>";
$.each(stateArray, function(j) {
if (stateArray[j] == stateArrayUnq[i]) {
html += ("<li>" + cityArray[j] + "<\/li>");
}
});
html += "<\/ul><\/li>";
});
$('#list').append(html);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="list">
<p>test</p>
</div>
推荐阅读
- excel - 如何使用 VBA 将指定日期的 Outlook 中的 HTML 表格导入 Excel?
- spring-boot - 带有 vaadin 的 spring boot 需要几分钟才能启动
- android - 闭源项目从 jcenter 迁移到 maven Central
- c - 如何调试卡住的线程?
- php - 在电子邮件中添加 IP 资源使用过多
- node.js - AWS ElasticBeanstalk 和 PM2 集成
- spring-batch - 无法自动接线。找不到“JobRepositoryTestUtils”类型的 bean
- linux - bash 脚本剪切/替换指南
- c++ - 使用原始套接字接收到的重复数据包并提升 asio
- google-chrome - 单击以在 javascript 中打开多个选项卡,但由于弹出块而无法打开