gpt4 book ai didi

php - 管理重复 ID 名称的更好方法...属性

转载 作者:行者123 更新时间:2023-11-28 12:45:41 26 4
gpt4 key购买 nike

我在一个可以接收多个 HTML 片段的元素中工作,每个片段可以从不同的用户发送,事实上一些片段可以包含相同的 id 名称或 CSS 类名,如何管理重名,在JSPHP DOM 中定位?

最佳答案

如果您可以将片段存储在 JavaScript(AJAX 或其他)中,那么您可以在页面上尝试这个 - 它应该可以在任何设备上运行,并通过在将其添加到 DOM 之前用随机数重命名它来修复任何重复的 ID

Live Demo

 $(function() {
var counter=0,prefix="renFrag",fragments = [
$('<div id="id1">Fragment1</div>'),
$('<div id="id2">Fragment2</div>'),
$('<div id="id3">Fragment3</div>')
]
$.each(fragments,function() {
var id = $(this).attr("id"); // the ID of the fragment
if ($("#"+id).length>0) { // find if this ID is already in the DOM
// rename the fragment. NOTE Date().getTime() was not random enough
// $(this).attr("id",id+'_'+Math.floor(Math.random() * 10000));
$(this).attr("id",prefix+(counter++));
}
$(this).appendTo("#container"); // add the fragment to the DOM
});
$("div").each(function() { // display the ID for debugging (remove when happy)
$(this).append("-"+this.id);
});
});

如果您需要访问新片段,请向其添加固定字符串,将随机数更改为计数器并使用 $("div[id^=renFrag]").whatever$("div[id=renFrag"+cnt+"]").whatever

如果您需要保留嵌入式脚本和 CSS,通常不推荐但您的情况很特殊的选项是将每个片段加载到其自己的 iFrame 中。请注意,在页面中或通过 iFrame 执行外部脚本存在安全风险。

关于php - 管理重复 ID 名称的更好方法...属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17376715/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com