在javascript中單擊串列時,我沒有獲得類名的id值。我得到空白值。
<ul class="nav sub-group-menu menu-open chapter-images" style="display: block;">
<li id="1" class="nav-item chapter-image"><a class="nav-link"><i class="fa fa-angle-right"></i>Orientation
- chappter1.1-slide1</a>
</li>
<li id="2" class="nav-item chapter-image active"><a id="2222" class="nav-link chapter-image2"><i class="fa fa-angle-right"></i>Orientation
- chappter1.1-slide2</a>
</ul>
var classname = document.getElementsByClassName("chapter-image");
for (var i = 0; i < classname.length; i ) {
classname[i].addEventListener('click', function () {
var id = this.children[0].id;
///var attr = this.children[0].attributes['data-img-index'].nodeValue;
openCard(id);
});
}
uj5u.com熱心網友回復:
您可以使用onClickHTML 中的事件簡化代碼。
<div onClick="openCard(1)" class="chapter-image">chapter-image 1</div>
<div onClick="openCard(2)" class="chapter-image">chapter-image 2</div>
<div onClick="openCard(3)" class="chapter-image">chapter-image 3</div>
<script>
const openCard = (cardId) => {
alert(cardId)
}
</script>
uj5u.com熱心網友回復:
我明白了,您將元素索引硬編碼為 0。我認為您的意思是
var id = this.children[i].id;
點擊事件會導致冒泡,你需要檢查點擊的元素是否是你想要的相同元素。
var classname = document.getElementsByClassName("chapter-image");
for (var i = 0; i < classname.length; i ) {
classname[i].addEventListener('click', function (event) {
let id;
if (event.target === classname[i]) {
id = this.children[i].id;
}
///var attr = this.children[0].attributes['data-img-index'].nodeValue;
openCard(id);
});
}
uj5u.com熱心網友回復:
嘗試這個,
window.onload = function() { 常量元素 = document.getElementsByClassName('nameOfTheClass');
for (const element of elements) {
element.addEventListener("click", e => {
console.log("element was clicked", e.target.id, e.target.innerHTML);
})
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/493201.html
標籤:javascript
