jQuery - Raphael - SVG - 基于自定义数据的选择器
jQuery - Raphael - SVG - selector based on custom data
我已经为添加到拉斐尔画布中的一些圆分配了一个自定义数据属性,如下所示each()
:
marker.data('transaction', transaction);
如何在画布上查找具有相同交易数据值的元素?
目前我有代码:
var found = document.querySelectorAll("[transaction='" + current_transaction +"']");
它应该返回一个带有元素的 NodeList,但它不起作用。将数据检索到变量中,就像var foo = marker.data('transaction')
一样简单,但显然,如果我想检索元素的 NodeList,这是行不通的。
因此,我希望我的选择器如下所示,但我无法制定正确的语法:
var found = document.querySelectorAll("data('transaction' = 1)");
任何帮助将不胜感激
由于Raphael必须支持VML,因此它不会像html5应用程序那样将数据保留在DOM中。如果要在 dom 中存储数据,则必须访问 html 节点并在那里设置属性...
marker.node.setAttribute('data-transaction', transaction);
然后,您可以使用 querySelectorAll
查询元素。请记住,这将在 IE8 <失败。>
如果你想保留旧的IE支持,我建议编写一个函数来迭代你的标记,并在mark.data("transaction") == transaction
时返回Raphael对象
问题是jQuery无法访问SVG节点。你必须尝试普通的Javascript。问题可能是如果您使用旧浏览器的兼容性 querySelectorAll
.
看这里: http://dean.edwards.name/jsb/behavior/querySelectorAll.html在这里: http://www.w3.org/TR/selectors-api/#queryselectorall
可能的解决方案:看看拉斐尔-多克:http://raphaeljs.com/reference.html#Element.data
- jQuery最近父级的数据属性选择器
- 平均值.on(事件[,选择器][,数据],处理程序)
- 如何从jquery日期和时间选择器中选择和显示数据
- 如何在JQuery数据选择器中显示小时数
- 对话框,数据选择器获取id
- 使用数据选择器和时刻处理不同语言的日期
- JavaScript 数据选择器限制日期
- JQuery 数据选择器在格式之间转换
- 如何更改 jquery UI 数据选择器的样式 (CSS)
- 追加到数据选择器的值,然后从中删除
- 具有角度和引导程序的数据选择器绑定
- 如何在Meteor中提交和保存引导数据选择器的值
- 为什么谷歌翻译挂起我的斑马数据选择器
- jQuery数据选择器解析日期引发无效的日期异常
- 带有数据选择器的HTML JS日期差异
- 正在Jquery UI数据选择器上设置日期格式
- Jquery数据选择器查找具有特定数据值的所有元素
- 为什么我不能用javascript迭代保存在html数据选择器上的这个数组?
- 比较数据选择器中的值
- 具有相同类getDate的多个数据选择器