请问各位:我这段代码执行后为什么只是视觉上看起来移动了,实际我拖动一下又会变回原来的样子?
代码运行后的视频
执行后的效果

我一动每一行中的任意一张,就会到后面,只有我移动的那张才有效果

```javascript
(function() {
'use strict';
// 辅助函数:等待元素加载
function waitForElement(selector, timeout = 5000) {
return new Promise((resolve, reject) => {
const check = () => {
const element = document.querySelector(selector);
element ? resolve(element) : setTimeout(check, 100);
};
setTimeout(() => reject(new Error(`元素 "${selector}" 加载超时`)), timeout);
check();
});
}
// 配置:根据页面结构设置选择器
const CONFIG = {
ROWS_SELECTOR: 'tr.row-hover', // 行的选择器
IMAGE_ITEMS_SELECTOR: '.single-image' // 图片容器选择器
};
// 核心功能:将每行最后一张图片移到最前面
async function moveLastImageToFront() {
try {
// 等待行元素加载
await waitForElement(CONFIG.ROWS_SELECTOR);
const rows = document.querySelectorAll(CONFIG.ROWS_SELECTOR);
rows.forEach((row, rowIndex) => {
// 找到当前行的所有图片容器
const imageItems = row.querySelectorAll(CONFIG.IMAGE_ITEMS_SELECTOR);
if (imageItems.length < 2) {
console.log(`第 ${rowIndex + 1} 行:图片数量不足 2 张,跳过移动`);
return;
}
// 获取最后一张和第一张图片容器
const lastImage = imageItems[imageItems.length - 1];
const firstImage = imageItems[0];
// 获取第一张图片的父节点(这是正确的插入位置)
const parent = firstImage.parentNode;
// 移动 DOM 节点,确保在正确的父节点上执行插入
parent.insertBefore(lastImage, firstImage);
console.log(`第 ${rowIndex + 1} 行:最后一张图片已移到最前`);
});
console.log(`✅ 共处理 ${rows.length} 行图片顺序调整,操作完成!`);
} catch (error) {
console.error("移动图片失败:", error);
}
}
// 启动确认:提示并执行
if (confirm('确定要执行「将每行最后一张图片移到最前面」操作吗?')) {
moveLastImageToFront();
}
})();
```