0

我有一个 LI 的 UL,每个都包含一个 IMG 和一个包含一些简短文本的 SPAN,我的代码旨在在有人将鼠标悬停在 IMG 上时显示 SPAN,正在查找和查找仅 TEXT 节点。

代码,直到某一点,是:

drag.mousemove = function (event) {
   if (event == null) {
       event = window.event;
   }
   var lowest_distance = +Infinity;
   var lowest_distance_index = null;
   var root = document.getElementById('path1');
   if (!root) {
       return;
   }
   var intermediate = root.childNodes;
   var images = [];
   var best_image = null;
   for (var outer = 0; outer < intermediate.length; ++outer) {
       console.log('Outer: ' + intermediate[outer].nodeName);
   }
}

它唯一报告的是“外部:#text”。path1 DIV 包含任何拖到它上面的图像;从浏览器行为的角度来看,看起来图像已成功拖放,并且沿途丢失了 SPAN。但是控制台并没有进入 path1 的子节点的内部循环;在我引用的内容之后是“内部:”记录的子节点到外部子节点的遍历,我不记得在日志中看到过“内部:”。当我记录节点的内容时,它们都是一个换行符和八个空格,没有制表符。

而且,在 HTML 源代码中,path1 的开始和结束 DIV 标记之间的全部内容是一个换行符和八个空格,没有制表符。

是否有一种明智的方法来进行适用于图像的拖放操作,并且旨在将包含 LI 的(在这种情况下)移动到目标区域,但 DOM 检查仅发现文本节点?或者,是否有理由将初始 DOM 内容冻结为唯一可以识别的内容?

4

0 回答 0