javascript - 无限滚动添加新项目后如何更新文档更改?
问题描述
我在 dom 更改方面遇到了一些问题。
我的 parent 有 20 个li
元素ul
。我已li
使用以下 jquery 代码更改了所有内容:
[...document.querySelectorAll('.signature-discount')].map(item => item.innerHTML = '<span class=\"discount-value\">new content</span>');
$(".product-detail").append("<span class='signature-info'>more new content</span>");
在所在的页面中li
有一个无限滚动。问题是每次用户滚动到底部时,都会添加 20 个新元素,但它们的内容不受我的 jquery 代码的影响。
我曾尝试使用DOMSubtreeModified
来收听我的ul
类名的更改,但它没有按预期工作。你们能帮帮我吗?答案可以是 jquery 或纯 javascript。
解决方案
我做的 :)
由于我的场景没有像 SO 中关于这个主题的大多数问题那样的用户交互,我不得不观察用户滚动并检查我的 li 的长度。
如果长度大于初始值,那么它将重新应用我的 JS 更改。
let initialLength = 20; //this is my initial li length items
$(window).scroll(function() {
if (document.querySelectorAll(".liProduct").length > initialLength) {
initialLength = document.querySelectorAll(".liProduct").length; //defining a new initialLength to keep the loop going
[...document.querySelectorAll('.signature-discount')].map(item => item.innerHTML = '<span class=\"discount-value\">new content</span>');
$(".product-detail").append("<span class='signature-info'>new content 2</span>");
}
});
推荐阅读
- reactjs - 如何在 JSX 中将返回的字符串重新呈现为 JSX
- c# - 大家好,当我计算任何数字 * 1% 时,它给了我一个很长的数字,我想将其缩减为 2 位小数 C# WPF 转换
- android - 无法从 Binlist API 获取值
- react-native - 功能组件中的 Animated.spring 不适用于 onPress?
- three.js - Perlin 噪声函数在顶点着色器中损坏但在片段着色器中没有?
- javascript - 为什么 fetch 返回我的 React 应用程序的 index.html 而不是我提供的 URL?
- javafx - 线程“main”java.lang.reflect.InvocationTargetException JavaFX 中的异常(首先由显示图像和播放音频文件引起)
- spring - 匹配的通配符是严格的,但找不到元素“security:http”的声明。设置弹簧安全后出现此错误
- ajax - 如何在 ajax 和 laravel 中传递数组和其他字段
- java - 无法在 Eclipse 上运行 servlet,java 虚拟机错误 &“启动 tomcat localhost 遇到问题”