我有以下HTML
<!DOCTYPE html>
<html>
<head>
<title>Bootstrap Example</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<div class="dropdown">
<button type="button" class="btn btn-warning dropdown-toggle" data-toggle="dropdown">
Dropdown button
</button>
<div id="custom" class="dropdown-menu">
<a class="dropdown-item" href="#">Normal</a>
<a class="dropdown-item" href="#">Active</a>
<a class="dropdown-item" href="#">Disabled</a>
</div>
</div>
</div>
<script>
document.getElementById('custom').addEventListener("click", myFunction);
function myFunction() {
alert(this.textContent);
}
</script>
</body>
</html>
我正在尝试alert
并将button
文本设置为drop-down
中选择的内容。
我可以通过将ID设置为dropdown-item
并在JS中读取它来获取值。但是我有n个dropdown-item
,所以添加id是不可行的。
jQuery
中有可用的解决方案,但是如果不使用jQuery
怎么办呢? ?
答案 0 :(得分:1)
您可以访问目标元素的innerHTML
或innerText
属性:
document.getElementById('custom').addEventListener("click", myFunction);
function myFunction(e) {
alert(e.target.innerText);
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<div class="container">
<div class="dropdown">
<button type="button" class="btn btn-warning dropdown-toggle" data-toggle="dropdown">
Dropdown button
</button>
<div id="custom" class="dropdown-menu">
<a class="dropdown-item" href="#">Normal</a>
<a class="dropdown-item" href="#">Active</a>
<a class="dropdown-item" href="#">Disabled</a>
</div>
</div>
</div>
答案 1 :(得分:1)
从您的查询中,我怀疑您要访问下拉单击事件中的下拉菜单的选定项。
您可以从click事件参数(即 e.target )中获取选定的元素。因此,您可以轻松地从该元素访问选定的元素文本(即 e.target.text )。
答案 2 :(得分:1)
<!DOCTYPE html>
<html>
<head>
<title>Bootstrap Example</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<div class="dropdown">
<button type="button" id="dropdown-button" class="btn btn-warning dropdown-toggle" data-toggle="dropdown">
Dropdown button
</button>
<div id="custom" class="dropdown-menu">
<a class="dropdown-item" href="#">Normal</a>
<a class="dropdown-item" href="#">Active</a>
<a class="dropdown-item" href="#">Disabled</a>
</div>
</div>
</div>
<script>
document.getElementById('custom').addEventListener("click", myFunction);
function myFunction() {
document.getElementById('dropdown-button').innerText = event.target.innerText;
}
</script>
</body>
</html>
答案 3 :(得分:0)
您可以获取链接的父元素。 我的意思是,您可以通过javascript代码获得“ #custom”元素。
var parElement = document.getElementByID(“#custom”); //将返回元素。
您可以通过调用
获取自定义元素的子元素parElement.childNodes //这将返回子节点。
可以获得子节点的长度,因此可以完全控制链接。