当我调用我的函数时,它不起作用。
当我查询所有元素并循环它们时。我无法对 UI 产生任何影响。
我需要从所有 .question
添加属性 hidden
,并从索引传递给 Js 函数的属性中删除 .hidden
。当我调用该函数时的类。
这是 HTML。
<div class="col-md-12 mb-12 question" hidden="hidden" id="D1">
1
</div>
<div class="col-md-12 mb-12 question" hidden="hidden" id="D2">
2
</div>
<div class="col-md-12 mb-12 question" hidden="hidden" id="D3">
3
</div>
<div class="col-md-12 mb-12 question" hidden="hidden">
4
</div>
在没有循环的情况下单独调用 If 条件中的行是可行的。 我不能在这里做什么。
function hideothersexcept(index){
var ALLQNS = $('.question');
for (i = -1; i < ALLQNS.length; i++) {
if (index == i) {
$('#' + getid(index)).removeAttr('hidden')
} else {
ALLQNS[index].setAttribute("hidden", "hidden");
}
}
}
function getid(elm) {
var ALLQNS = $('.question');
k = ALLQNS[elm].getAttribute("id");
return k;
}
最佳答案
尝试下面的代码,它更干净、简洁,然后手动循环所有 div,更重要的是它可以工作:)
function hideothersexcept(index){
$('.question').each(function(elIndex, el){
if(elIndex == index){
$(el).removeAttr('hidden');
}else{
$(el).attr('hidden', 'hidden');
}
});
}
hideothersexcept(1);
它将隐藏除包含数字 2 的 div 之外的所有其他 div。
注意:索引是从零开始的:)
如果不起作用,请告诉我。
关于javascript - 删除所有 DOM 元素中隐藏的属性,除了给出索引的元素使用 Javascript 函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52025246/