在我使用的那一刻$('.class:not(:empty)').html('');,它对我来说仍然需要很长时间.
例如,约1200个非空div和~2000个div总共花费约2秒.
另外,简单地完全删除div会更快吗?
您可以尝试:
$('.class').empty();
Run Code Online (Sandbox Code Playgroud)
你不会过滤所有.class需要时间的非空的es - 只需清除它们.
性能测试:
$('.class').empty(); // 23.810ms, 31.646ms, 24.003ms ~ 26,486ms
$('.class:not(:empty)').empty(); // 25.469ms, 27.323ms, 24.964ms ~ 25,919ms
$('.class').html(''); // 34.353ms, 48.778ms, 44.487ms ~ 42,539ms
$('.class:not(:empty)').html(''); // 34.751ms, 27.494ms, 35.428ms ~ 32,558ms
Run Code Online (Sandbox Code Playgroud)
并简单删除所有项目:
$('.class').remove; // 77.650ms, 68.968ms, 69.281ms ~ 71,966ms
Run Code Online (Sandbox Code Playgroud)
该测试是通过以下方式进行
$('body').empty()
for (var i = 0; i < 1200; i++) $('<div class="class">not-empty</div>').appendTo($('body'));
for (var i = 0; i < 2000; i++) $('<div class="class"></div>').appendTo($('body'));
console.time('timer');
// proper method
console.timeEnd('timer')
Run Code Online (Sandbox Code Playgroud)