Javascript 如果您根本不想删除,只需隐藏,然后在我的小提琴中替换此$(this).closest(“li”).hide(“slow”,function(){$(this.remove())与$(this).最近的(“li”).隐藏(“slow”)元素是隐藏的,但该元素

Javascript 如果您根本不想删除,只需隐藏,然后在我的小提琴中替换此$(this).closest(“li”).hide(“slow”,function(){$(this.remove())与$(this).最近的(“li”).隐藏(“slow”)元素是隐藏的,但该元素,javascript,animation,html-lists,show-hide,removeclass,Javascript,Animation,Html Lists,Show Hide,Removeclass,如果您根本不想删除,只需隐藏,然后在我的小提琴中替换此$(this).closest(“li”).hide(“slow”,function(){$(this.remove())与$(this).最近的(“li”).隐藏(“slow”)元素是隐藏的,但该元素之后的元素不会移动以取代它,就像我删除元素时一样。这里的问题是CSS选择器“.items li:nth child({0})”不关心元素是否隐藏。只要元素仍然存在,n个子元素将对其进行计数。计算元素的数量是该代码定位的核心。因此,不可能应用/更


如果您根本不想删除,只需隐藏,然后在我的小提琴中替换此
$(this).closest(“li”).hide(“slow”,function(){$(this.remove())
$(this).最近的(“li”).隐藏(“slow”)元素是隐藏的,但该元素之后的元素不会移动以取代它,就像我删除元素时一样。这里的问题是CSS选择器
“.items li:nth child({0})”
不关心元素是否隐藏。只要元素仍然存在,
n个子元素将对其进行计数。计算元素的数量是该代码定位的核心。因此,不可能应用/更改该代码来隐藏/显示函数?我看不到任何这样做的方法(仅使用CSS规则,使用第n个子项和translate3d)。我可以问你,
float
不能解决你的问题吗?如果我错了,请纠正我,但我认为你的方法太复杂(我不是说复杂),而且在处理大型项目时,代码很难理解。当我们选择元素时,添加一个类“removed”会更简单更容易。@LyesBEN:(1)这不是我的代码。我只做了几处改动来解决Op的问题。(2) 你读过问题了吗?你试着理解Op的问题是什么吗?是的,你可以看看我的答案。Op希望隐藏该元素,但在循环遍历这些元素时仍不包含该元素。我引用“但我认为它计算了所有元素,即使它们是隐藏的”@LyesBEN:好。那么,你为什么不从Op的小提琴上制作一个工作演示,并将其包含在你的答案中呢?我认为这是一个很好的答案,但如何在我的过滤网站上工作呢?我尝试使用detach()和append,但元素没有再次出现。看这里(这是上一个示例):您可以在分离时记住te元素(就像我在名为element的变量中所做的那样),然后使用append函数将此元素追加到适当的位置。这只是一个示例,所以它只记得最后删除的元素,但我相信它显示了它的工作原理。感谢您的解释:)
function createListStyles(rulePattern, rows, cols) {
var rules = [], index = 0;
for (var rowIndex = 0; rowIndex < rows; rowIndex++) {
    for (var colIndex = 0; colIndex < cols; colIndex++) {
        var x = (colIndex * 100) + "%",
            y = (rowIndex * 100) + "%",
            transforms = "{ -webkit-transform: translate3d(" + x + ", " + y + ", 0); transform: translate3d(" + x + ", " + y + ", 0); }";
        rules.push(rulePattern.replace("{0}", ++index) + transforms);
    }
}
var headElem = document.getElementsByTagName("head")[0],
    styleElem = $("<style>").attr("type", "text/css").appendTo(headElem)[0];
if (styleElem.styleSheet) {
    styleElem.styleSheet.cssText = rules.join("\n");
} else {
    styleElem.textContent = rules.join("\n");
}
...
<button class="append">Add new item</button>
<button class="replenish">Replenish from cache</button>
<div id="cache"></div>
...
$(this).closest("li").hide(600, function() { 
    $(this).appendTo($('#cache')); 
});
...
$(".replenish").click(function () {
    $("#cache").children().eq(0).appendTo($(".items")).show();
});
.hide( duration [, easing ] [, complete ] )
$(this).closest("li").hide(400, function() {
  $(this).addClass('removed');
});