Javascript jQuery-Raphael-SVG-基于自定义数据的选择器
我在Javascript jQuery-Raphael-SVG-基于自定义数据的选择器,javascript,jquery,html,raphael,Javascript,Jquery,Html,Raphael,我在each()循环中为添加到Raphael画布的一些圆指定了自定义数据属性,如下所示: marker.data('transaction', transaction); 如何在画布上找到具有相同事务数据值的元素 目前我有以下代码: var found = document.querySelectorAll("[transaction='" + current_transaction +"']"); 它应该返回包含元素的节点列表,但不起作用。要将数据检索到变量中,很简单,只需var foo=
each()
循环中为添加到Raphael画布的一些圆指定了自定义数据属性,如下所示:
marker.data('transaction', transaction);
如何在画布上找到具有相同事务数据值的元素
目前我有以下代码:
var found = document.querySelectorAll("[transaction='" + current_transaction +"']");
它应该返回包含元素的节点列表,但不起作用。要将数据检索到变量中,很简单,只需var foo=marker.data('transaction')
,但显然,如果要检索元素的节点列表,这是行不通的
因此,我希望我的选择器如下所示,但我无法计算出正确的语法:
var found = document.querySelectorAll("data('transaction' = 1)");
任何帮助都将不胜感激我认为问题在于jQuery无法访问SVG节点。您必须尝试普通的Javascript。如果使用
querySelectorAll
,问题可能是与旧浏览器的兼容性
看这里:
在这里:
可能的解决办法:
看看Raphael文档:因为Raphael必须支持VML,所以它不会像html5应用程序那样将数据保存在DOM中。如果要在dom中存储数据,必须访问html节点并在那里设置属性
marker.node.setAttribute('data-transaction', transaction);
然后可以使用querySelectorAll
查询元素。请记住,这将在如果您想保留旧版IE支持,我建议您编写一个函数,当
mark.data(“transaction”)==transaction
噢,谢谢,它可以在标记上迭代并返回Raphael对象。那么,基于.data函数的选择器会是什么样子呢?在过去的两周里,我正在与raphaeljs合作,测试高分辨率显示器的图像替换。所以我在动态编码方面没有经验。很抱歉