我正在尝试通过这样的类名获取元素的ID
var prod_id2 = document.getElementsByClassName('select-selected')[1].id
document.getElementById('hidden-input-2').value = prod_id2;
这很好用,但是我的问题是,如果该类只有一个元素,它将破坏功能,所以我需要某种if语句才能仅在该类有第二个div时定义此var。 有什么想法吗?
答案 0 :(得分:3)
尝试一下:
const elements = document.querySelectorAll('.test');
if (elements[1]) {
elements[1].innerText = 'Hithere';
}
<div class="test">hi</div>
<div class="test">hi</div>
<div class="test">hi</div>
document.querySelectorAll('.test');
选择具有类test的所有元素并返回节点列表。答案 1 :(得分:0)
它破坏了我认为的功能,因为您正在专门抓取第二个元素。您可以这样做:
const prod_id2 = document.querySelectorAll('.select-selected');
遍历元素并获取ID
prod_id2.forEach((prod, index) => {
if(index === 2) {
document.getElementById('hidden-input-2').value = prod.id;
}
})
答案 2 :(得分:0)
这里是检查第二个元素的方法。
您还可以设置另一个fallback,它不同于null:
document.addEventListener("DOMContentLoaded", function(event) {
var selectedElements = document.querySelectorAll('.selected-selected'),
prod_id2 = selectedElements[1] || null;
alert(prod_id2)
});
<div id="test" class="selected-selected"></div>
您还可以然后检查该值:
if (prod_id2) { // do some other stuff with the set value }