点击链接生成二级菜单实现
时间: 2023-05-20 10:03:42 浏览: 97
这个问题涉及编程,我可以回答。要实现点击链接生成二级菜单,可以使用 JavaScript 和 HTML。首先,在 HTML 中创建一个链接,然后使用 JavaScript 在点击链接时生成一个下拉菜单。可以使用以下代码实现:
HTML:
<a href="#" onclick="showMenu()">点击这里</a>
<div id="menu"></div>
JavaScript:
function showMenu() {
var menu = document.getElementById("menu");
menu.innerHTML = "<ul><li>菜单项1</li><li>菜单项2</li><li>菜单项3</li></ul>";
}
这个代码会在点击链接时生成一个包含三个菜单项的下拉菜单。你可以根据需要修改菜单项的数量和内容。
相关问题
jsp 根据数据库内容循环生成二级菜单
假设你有一个数据库表,里面包含了一些一级菜单和二级菜单的信息,可以采用以下的步骤来循环生成二级菜单:
1. 首先连接数据库,查询需要的数据。
2. 遍历查询结果,将一级菜单和二级菜单分别保存到不同的数组中。
3. 利用循环语句,依次输出一级菜单的名字,并在其下方生成对应的二级菜单。
4. 在生成二级菜单时,需要判断该二级菜单是否属于当前的一级菜单,如果是则输出。
下面是一个简单的示例代码:
```
<%
// 连接数据库,查询数据
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/test";
String username = "root";
String password = "123456";
conn = DriverManager.getConnection(url, username, password);
stmt = conn.createStatement();
String sql = "SELECT * FROM menu";
rs = stmt.executeQuery(sql);
// 将一级菜单和二级菜单分别保存到数组中
ArrayList<String> parentMenus = new ArrayList<String>();
ArrayList<String[]> subMenus = new ArrayList<String[]>();
while (rs.next()) {
String parentMenu = rs.getString("parent_menu");
String subMenu = rs.getString("sub_menu");
parentMenus.add(parentMenu);
subMenus.add(subMenu.split(","));
}
// 循环输出一级菜单和对应的二级菜单
for (int i = 0; i < parentMenus.size(); i++) {
String parentMenu = parentMenus.get(i);
out.println("<li>" + parentMenu + "</li>");
String[] subMenuArr = subMenus.get(i);
out.println("<ul>");
for (String subMenu : subMenuArr) {
if (subMenu.startsWith(parentMenu + "-")) {
out.println("<li>" + subMenu.split("-")[1] + "</li>");
}
}
out.println("</ul>");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭数据库连接
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
%>
```
上面的代码中,我们首先连接数据库,查询所有的菜单信息,并将一级菜单和二级菜单分别保存到 `parentMenus` 和 `subMenus` 数组中。然后我们使用循环语句依次输出每个一级菜单,并在其下方生成对应的二级菜单。在生成二级菜单时,我们使用了一个判断,判断该二级菜单是否属于当前的一级菜单,如果是则输出。最后,我们关闭了数据库连接。
需要注意的是,上面的代码仅仅是一个示例,实际情况下需要根据具体的需求进行修改。例如,如果菜单比较多,可以考虑采用分页的方式进行显示;如果需要对菜单进行操作(例如添加、修改、删除等),则需要编写相应的代码来实现。
用html生成二级下拉菜单
下面是一个简单的示例,展示如何使用HTML生成二级下拉菜单:
```html
<!DOCTYPE html>
<html>
<head>
<title>二级下拉菜单示例</title>
</head>
<body>
<form>
<label for="main-menu">选择一个主菜单:</label>
<select id="main-menu" name="main-menu" onchange="populateSubMenu()">
<option value="">请选择</option>
<option value="menu1">菜单1</option>
<option value="menu2">菜单2</option>
<option value="menu3">菜单3</option>
</select>
<label for="sub-menu">选择一个子菜单:</label>
<select id="sub-menu" name="sub-menu">
<option value="">请选择</option>
</select>
</form>
<script>
function populateSubMenu() {
var mainMenu = document.getElementById("main-menu");
var subMenu = document.getElementById("sub-menu");
// 清空子菜单
subMenu.innerHTML = "";
// 根据所选的主菜单填充子菜单
if (mainMenu.value == "menu1") {
var options = ["子菜单1", "子菜单2", "子菜单3"];
for (var i = 0; i < options.length; i++) {
var option = document.createElement("option");
option.innerHTML = options[i];
subMenu.appendChild(option);
}
}
else if (mainMenu.value == "menu2") {
var options = ["子菜单4", "子菜单5", "子菜单6"];
for (var i = 0; i < options.length; i++) {
var option = document.createElement("option");
option.innerHTML = options[i];
subMenu.appendChild(option);
}
}
else if (mainMenu.value == "menu3") {
var options = ["子菜单7", "子菜单8", "子菜单9"];
for (var i = 0; i < options.length; i++) {
var option = document.createElement("option");
option.innerHTML = options[i];
subMenu.appendChild(option);
}
}
}
</script>
</body>
</html>
```
以上代码创建了一个包含两个下拉菜单的表单。第一个下拉菜单(id为“main-menu”)作为主菜单,第二个下拉菜单(id为“sub-menu”)作为子菜单。
在主菜单下拉框中选择一个选项后,JavaScript函数populateSubMenu()会根据所选的主菜单选项填充子菜单。这个函数首先获取主菜单和子菜单的元素,然后根据所选的主菜单选项用数组填充子菜单选项。最后,它将子菜单选项添加到子菜单下拉菜单中。
请注意,这只是一个基本示例,可以通过CSS样式来美化下拉菜单。