jQuery - Raphael - SVG - 将具有相同数据属性的元素的位置放入数组中

时间:2012-06-25 08:55:50

标签: javascript jquery svg raphael

我已将自定义数据属性分配给添加到Raphael画布的某些圈子,如下所示each()循环:

marker.data('transaction', transaction);

如何在画布上找到具有相同事务数据值的元素,并将它们的位置放入for循环中的数组中,然后对该数组执行操作?

例如伪代码:

for (current_transaction = 1; current_transaction < 10; current_transaction++) {
    var array = find the location of elements with transaction data value of 
    current transaction;
    //perform some function with that array
}

我的问题是,你如何'getElementByData',然后搜索具有相同数据的元素。其余的很简单。

1 个答案:

答案 0 :(得分:1)

document.querySelectorAll('[transaction]')将使用属性事务获取所有内容。

使用[transaction ='foo']获取具有值foo的事务属性,例如

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">

  <path transaction="1"/>
  <path transaction="2"/>
  <path transaction="1"/>

  <script>
    for (var current_transaction = 1; current_transaction &lt; 2; current_transa
ction++) {
       var found = document.querySelectorAll("[transaction='" + current_transact
ion +"']");
       alert(found.length);
    }
  </script>

</svg>