You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在D3中非嵌套添加标签,为每个<p>标签生成带Tooltip的HTML

没问题!既然你更熟悉CSS来实现Tooltip效果,那咱们就结合D3来生成你想要的非嵌套独立

标签结构,每个

里都自带Tooltip文本。下面一步步来实现:


1. 先搞定CSS Tooltip样式

先写好Tooltip的基础样式,hover时就能正常显示提示框,你可以根据需求调整颜色、位置、尺寸这些细节:

/* 给包含Tooltip的p标签设置相对定位,作为Tooltip的参照容器 */
.tooltip {
  position: relative;
  display: inline-block; /* 按内容宽度排列,改成block可以让每个p占一行 */
  cursor: help;
  margin: 10px 0;
}

/* Tooltip文本容器,默认隐藏 */
.tooltiptext {
  visibility: hidden;
  width: 150px;
  background-color: #2d2d2d;
  color: #fff;
  text-align: center;
  border-radius: 4px;
  padding: 6px 0;
  position: absolute;
  z-index: 100;
  bottom: 130%; /* 把Tooltip放在p标签上方 */
  left: 50%;
  margin-left: -75px;
  opacity: 0;
  transition: opacity 0.2s ease;
}

/* hover时显示Tooltip */
.tooltip:hover .tooltiptext {
  visibility: visible;
  opacity: 1;
}
2. 用D3生成目标HTML结构

假设你有一组包含主文本和Tooltip内容的数据,我们用D3遍历数据,逐个生成带Tooltip的

标签:

// 示例数据:替换成你自己的业务数据
const tooltipData = [
  { text: "eyes.", tooltip: "Tooltip text for eyes" },
  { text: "eyes.", tooltip: "filler text&l..." },
  { text: "mouth.", tooltip: "Tooltip content for mouth" }
];

// 选择要挂载这些p标签的容器(比如body或某个指定div)
d3.select("body")
  .selectAll("p.tooltip")
  .data(tooltipData)
  .enter()
  // 创建每个p标签,添加类名和字体样式
  .append("p")
  .attr("class", "tooltip")
  .style("font-size", "73.6207pt")
  // 添加p标签的主文本内容
  .text(d => d.text)
  // 给每个p标签追加Tooltip文本的span元素
  .append("span")
  .attr("class", "tooltiptext")
  .text(d => d.tooltip);

// 如果需要在每个p标签后加换行,执行这行代码
d3.select("body").selectAll("p.tooltip").append("br");

生成后的HTML效果

运行代码后,会生成和你需求一致的HTML结构:

<p class="tooltip" style="font-size: 73.6207pt;">eyes. <span class="tooltiptext">Tooltip text for eyes</span><br></p>
<p class="tooltip" style="font-size: 73.6207pt;">eyes. <span class="tooltiptext">filler text&l...</span><br></p>
<p class="tooltip" style="font-size: 73.6207pt;">mouth. <span class="tooltiptext">Tooltip content for mouth</span><br></p>

这样每个

都是独立非嵌套的,hover时就能通过CSS触发显示对应的Tooltip文本啦!

内容的提问来源于stack exchange,提问作者Ore Arowobusoye

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:39:40