我试图像reddit一样隐藏孩子们的评论,我写了这个功能:
function toggle(id, lft, rgt) {
var kids = (rgt - lft - 1) / 2;
if (kids >= 1) {
var element = document.querySelector("div.com#com" + id).getAttribute('value');
var low = Number(element.split('-')[0]);
var high = Number(element.split('-')[1]);
for (var i = low + 1; i <= high - 1; i += 1) {
const x = document.querySelectorAll('div.com[min=' + i + ']');
}
Array.from(x).forEach(comment => {
if (comment.style.display === "none") {
comment.style.display = "block";
} else {
comment.style.display = "none";
}
});
}
例如,这是父评论:
<div>
<a onclick="return toggle(1, 1, 4)" href="javascript:void(0)">[-]</a>
<div id="com1" class="com md" value="1-4" min="1">yellow</div>
</div>
这是一个孩子的评论:
<div>
<a onclick="return toggle(2, 2, 3)" href="javascript:void(0)">[-]</a>
<div id="com2" class="com md" value="2-3" min="2">hello </div>
</div>
我想隐藏所有在父值 1 和 4 之间具有 min 属性的评论,并且这个子级具有 min=2 所以它必须被隐藏。但是js功能不起作用,那么问题出在哪里?
其他问题?
我应该写在foreach
里面for loop
还是这样就可以了?
如果标题中的错误已修复,该功能是否会起作用并且子评论将被隐藏,如果没有,为什么?
相关分类