javascript - 如何使用 jquery 找到鼠标悬停时的当前元素文本

标签 javascript jquery

这是我的代码,

<!DOCTYPE html>
<html>
<body>

<svg id="a" height="210" width="400">
  <path id="b" d="M150 0 L75 200 L225 200 Z" />
</svg>

</body>
</html>

当鼠标从 b 移开时,我想要该代码(路径 id="b"d="M150 0 L75 200 L225 200 Z")。如何使用 jquery 获取它?

最佳答案

您可以使用outerHTML :

var path = $("#b")[0].outerHTML; // <path id="b" d="M150 0 L75 200 L225 200 Z"></path>

然后将其与悬停结合起来:

$("#b").hover(function() {
    console.log($(this)[0].outerHTML);
});

Working Example

正如所指出的,这在 IE 中不起作用,因为它不遵循 specification 。您可以通过克隆 <path> 来解决此问题元素,将其附加到 HTML 主体以使其成为 DOM 的一部分,然后从那里获取渲染的 HTML。
注意:这不是 HTML 的精确表示,因为它脱离了上下文。例如,它包含 xmlns ,但由于它是一个 jQuery 对象,您可以按照自己的喜好修改它:

$("#b").hover(function() {
    // Create a clone of the <path>
    var clone = $(this).clone();
    // Append it to the <body>
    clone.appendTo("body");
    // Wrap it in a containing <div> ... you'll see why in a minute
    clone.wrap("<div>");
    // Now we grab the innerHTML of that containing <div> - outerHTML won't work
    console.log(clone.parent().html());
    // Prints: <path xmlns="http://www.w3.org/2000/svg" id="b" d="M 150 0 L 75 200 L 225 200 Z" /> 

    // Now remove our temporary element again...
    clone.parent().remove();
});

关于javascript - 如何使用 jquery 找到鼠标悬停时的当前元素文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29875350/

相关文章:

javascript - 如何使用 javascript 取消注册/取消绑定(bind) Material ui 中的事件

javascript - 如何使用 javascript 将凭据传递到 iframe

javascript - SVG 图标指向另一个标记的方向

javascript - 如何在 Ionic 3 中导入外部 JS 文件

jQuery 在选中复选框时禁用表单元素

javascript - 将 flex 元素堆叠到 flex 容器的底部

javascript - JQuery下拉,悬停在下拉时保持向下

javascript - 单击搜索图标后使搜索栏缓慢出现

javascript - jquery.matchHeight 的问题

jquery - jScrollPane jquery插件,jspDrag不超过结束