javascript - 在 js 或 Jquery 中恢复 removeAttr
问题描述
我有一个 div 有 800 多个孩子,他们有随机的 ID。我想删除该主 div 中的所有 Id 属性,并在事件发生后将其恢复为默认值。
我曾使用 jQueryremoveAttr()
方法删除所有孩子的 ID,但我无法将 Id 恢复为默认值,因为它们有很多元素,我无法使用attr()
它们一一添加。
更新 1:
我这样做是因为它是一个 SVG 动画文件,其中包含很多元素,我想在某些事件上触发动画。
一些声明:
主 div 是这样的:
<div id="#mainSVG">
<svg>
<g id="random123"></g>
<g id="random235"></g>
<g id="random183"></g>
and so on ...
</svg>
</div>
和我的 js 文件:
$(document).ready(function () {
$(window).scroll(function () {
let hT = $('.home-anim-1').offset().top,
hH = $('.home-anim-1').outerHeight(),
wH = $(window).height(),
wS = $(this).scrollTop();
if (wS > (hT + hH - wH)) {
$("div #el_hXoVA5SDrei_an_ISJE0y5YL *").removeAttr("id")
}else {
$("div #el_hXoVA5SDrei_an_ISJE0y5YL *") I want to bring back all ids that are deleted
}
});
})
解决方案
您可以重命名属性以保存它,要恢复您可以在元素中重新设置 Id ...
$(document).ready(function () {
$(window).scroll(function () {
let hT = $('.home-anim-1').offset().top,
hH = $('.home-anim-1').outerHeight(),
wH = $(window).height(),
wS = $(this).scrollTop();
if (wS > (hT + hH - wH)) {
$("div #el_hXoVA5SDrei_an_ISJE0y5YL *").each(function(){
$(this).attr(savedId:$(this).attr("id")).removeAttr("id")
});
}else {
$("div #el_hXoVA5SDrei_an_ISJE0y5YL *").each(function(){
$(this).attr(id:$(this).attr("savedId")).removeAttr("savedId")
});
}
});
})
推荐阅读
- database - 如何对标称属性进行一次热编码以输出为完整的二进制文件?
- jmeter - 处理 JTL 日志阶段失败并出现错误“groovy.lang.MissingPropertyException: No such property: jtl for class: java.lang.String”
- laravel - 从国家 API 检索数据
- android - Xamarin.Android 应用在闲置几天后需要重新安装
- curl - sed & awk 替换 JSON 输出中的字符串
- php - 为数组分配一个键并按名称和电子邮件将其分组到一个数组中
- javascript - 我应该如何向服务器发送和接收视频才能显示它
- javascript - 从不同的表中选择字段 - TypeORM
- latex - 乳胶点以上
- mysql - 分组依据、IFNULL 和按日期排序