
js修改div元素id后样式失效问题解析
在使用JavaScript修改Div元素的ID后发现样式没有随之改变,令人疑惑。让我们深入了解问题的根源并提出解决方案。
在提供的代码示例中,通过JavaScript修改了两个Div元素(”thisfloor”和”thatfloor”)的ID。虽然ID成功改变,但样式仍然不变。
问题的关键在于,这些Div元素使用了。当ID交换后,样式确实生效,但由于元素的位置也随ID交换而改变,因此看起来像是样式没有改变。换句话说,元素不仅改变了ID,还改变了位置,导致它们看起来没有被修改。
解决方案:
立即学习“”;
为了解决此问题,需要确保元素在ID交换后仍保持其原始位置。一种解决方案是通过JavaScript或CSS明确设置元素的位置。
JavaScript解决方案:
function creatFloor() {
// 获取元素当前位置
var thisfloorPos = thisfloor.getBoundingClientRect();
var thatfloorPos = thatfloor.getBoundingClientRect();
// 交换ID
thisfloor.id = "thatfloor";
thatfloor.id = "thisfloor";
// 设置元素位置
thisfloor.style.left = thatfloorPos.left + "px";
thisfloor.style.top = thatfloorPos.top + "px";
thatfloor.style.left = thisfloorPos.left + "px";
thatfloor.style.top = thisfloorPos.top + "px";
}
登录后复制
CSS解决方案:
#thisfloor, #thatfloor {
position: absolute;
left: 50px;
top: 500px;
}
登录后复制
采用上述解决方案中的任何一种都可以确保在交换ID后元素保持其原始位置,从而使样式改变可见。
以上就是JavaScript修改Div元素ID后样式失效,究竟是样式没生效还是元素位置改变了?的详细内容,更多请关注米云其它相关文章!
