javascript-获取选择中元素的类型
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-获取选择中元素的类型,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1620字,纯文字阅读大概需要3分钟。
内容图文
如何找到d3选择的基础元素?
我尝试了d3.select(elem).node()给出了整个节点,而不仅仅是元素.我还检查了(在v5中)是否有一个_groups,并且可以从那里派生元素.但是,还有更直接的方法吗?
编辑
例如
var svg = d3.select('svg');
renderChart(svg);
...
var g = d3.select('g');
renderChart(g);
function renderChart(element){
// I want to find out here if the element (selection) passed
// is "svg" or a "g", and then take appropriate action
// element.node() is giving me the whole object -- not just that particular element
if (<tbd> == "svg"){
// take action here
}
}
上例中的element.node()返回一个对象.例如如果是svg,则在Chrome控制台中看起来像这样
在实际情况下,我必须在SVG元素上绘制主图表,但是我需要在该图表上提供可点击的操作,这些操作将运行相同的图表代码,但使用不同的数据来生成“子图表”,并且将其附加为“ g”元素.
谢谢!
解决方法:
有两种方法可以确定DOM元素的类型:
>对于任何类型的节点,您始终可以通过读取Node.nodeName来获取节点的名称.在您的示例中:
element.node().nodeName === "svg"
>如果您知道您的节点是元素类型,则可以参考特定接口的属性Element.tagName:
element.node().tagName === "svg"
>您可以使用众所周知的符号Symbol.toStringTag来访问元素的接口名称:
element.node()[Symbol.toStringTag] === "SVGSVGElement"
>最类型安全的方法是直接将元素的构造函数与DOM接口进行比较:
element.node().constructor === SVGSVGElement
这是上述所有方法的可执行演示:
const element = d3.select("svg");
console.log(element.node().nodeName === "svg");
console.log(element.node().tagName === "svg");
console.log(element.node()[Symbol.toStringTag] === "SVGSVGElement");
console.log(element.node().constructor === SVGSVGElement);
<script src="https://d3js.org/d3.v5.js"></script>
<svg></svg>
内容总结
以上是互联网集市为您收集整理的javascript-获取选择中元素的类型全部内容,希望文章能够帮你解决javascript-获取选择中元素的类型所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。