Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery-Raphael-SVG-基于自定义数据的选择器_Javascript_Jquery_Html_Raphael - Fatal编程技术网

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合作,测试高分辨率显示器的图像替换。所以我在动态编码方面没有经验。很抱歉