Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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
在Chrome中使用自定义属性的jQuery和SVG_Jquery_Google Chrome_Svg - Fatal编程技术网

在Chrome中使用自定义属性的jQuery和SVG

在Chrome中使用自定义属性的jQuery和SVG,jquery,google-chrome,svg,Jquery,Google Chrome,Svg,我的网页上有一些SVG元素,我想用jQuery访问它们。SVG元素附带了两个自定义数据属性,我想在jQuery选择器中使用这些属性来获得正确的元素。我的问题是,自定义属性选择器在Chrome中不起作用,而在IE9和Firefox中起作用。以下是SVG元素的示例: <rect width="75" data-myAttribute="someValue"></rect> 因此,该语句在Chrome中返回0个元素,而在Firefox和IE中返回所有X元素。不过,在选择器中使

我的网页上有一些SVG元素,我想用jQuery访问它们。SVG元素附带了两个自定义数据属性,我想在jQuery选择器中使用这些属性来获得正确的元素。我的问题是,自定义属性选择器在Chrome中不起作用,而在IE9和Firefox中起作用。以下是SVG元素的示例:

<rect width="75" data-myAttribute="someValue"></rect>
因此,该语句在Chrome中返回0个元素,而在Firefox和IE中返回所有X元素。不过,在选择器中使用“标准”属性似乎在所有浏览器中都有效。例如,此语句将在所有浏览器中正确返回所有元素:

$('rect[width]');
有人能解释一下为什么会发生这种情况,以及我可以如何在jQuery选择器中的SVG元素上使用自定义属性?我使用自定义数据属性,因为SVG元素没有我可以使用的ID或类

注意:本例中的SVG元素是由HighCharts javascript库创建的,但我想这并不重要。我使用jQuery版本1.8.0

数据属性名称必须至少有一个字符长,并且必须 以“数据-”作为前缀。它不应该包含任何大写字母

试试这个-

<rect id='r' width="75" data-value="someValue">d</rect> 

$('rect[data-value]');   // select element with data-value attribute

$('rect').data('value'); // read attribute value
d
$('rect[数据值]);//选择具有数据值属性的元素
$('rect')。数据('value');//读取属性值

感谢您的快速回复!但这似乎对我没有任何回报。数据函数已定义,但结果对象只是未定义(也适用于“宽度”等标准属性)。我需要一个更新的jQuery版本还是什么的?看到了吗?我刚刚更改了数据属性名称--我不认为这正是我想要的。我编辑了你的提琴来突出问题:这里它应该只得到jQuery元素a和c(因为b没有数据值属性)。但是,它会记录所有三个矩形SOK,因此您只想访问那些具有
数据值
属性的
rect
是的,没错。然而,您最新的小提琴仍然输出错误的结果。即使b没有value属性,它也会输出“abc”
<rect id='r' width="75" data-value="someValue">d</rect> 

$('rect[data-value]');   // select element with data-value attribute

$('rect').data('value'); // read attribute value