这是无序列表:
<ul id="all-categories" class="categories-list nav nav-tabs text-center">
<li class="category" >
<a class="dropdown-toggle" data-toggle="dropdown" href="#">Liquor</a>
<ul id="liquor-category" class="dropdown-menu">
<li><a href="#">Bourbon</a></li>
<li><a href="#">Gin</a></li>
<li><a href="#">Rum</a></li>
<li><a href="#">Tequila</a></li>
<li><a href="#">Vodka</a></li>
<li><a href="#">Whiskey</a></li>
</ul>
</li>
...
</ul
这是我用来获取文本并在页面的其他位置用作标签的代码:
var liquor_selected = document.querySelector('#liquor-category');
var selected = liquor_selected.addEventListener('click',function(e){
document.getElementById("category-name-box").innerHTML = "Liquor Sub-Category Here";
});
它打印通用文本,但我希望它能打印子类别。请帮助。
答案 0 :(得分:3)
点击处理程序绑定到父级,因此您必须找到单击的e.target:
var liquor_selected = document.querySelector('#liquor-category');
var selected = liquor_selected.addEventListener('click', function (e) {
document.getElementById("category-name-box").innerHTML = e.target.innerText;
});
在jQuery中你也可以这样做:
$('#liquor-category').on('click', function (e) {
$('#category-name-box').text($(e.target).text());
});
或者你可以在jQuery中更容易地绑定到a选择器
$('#liquor-category a').on('click', function (e) {
$('#category-name-box').text($(this).text());
});
答案 1 :(得分:0)
我假设你想要实现以下(在jQuery中)
JsFiddle中的示例:https://jsfiddle.net/282u8avw/
HTML:
<ul id="liquor-category" class="dropdown-menu">
<li><a href="#">Bourbon</a></li>
<li><a href="#">Gin</a></li>
<li><a href="#">Rum</a></li>
<li><a href="#">Tequila</a></li>
<li><a href="#">Vodka</a></li>
<li><a href="#">Whiskey</a></li>
</ul>
<div id="category-name-box">
</div>
的Javascript / jQuery的:
$(document).ready(function() {
$('#liquor-category a').click(function() {
$('#category-name-box').text($(this).text());
});
})