Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.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
jQuery数据属性单击事件_Jquery - Fatal编程技术网

jQuery数据属性单击事件

jQuery数据属性单击事件,jquery,Jquery,我很快就画了一张提琴来概括我的问题: 我试图单击一个div,获取它的data属性并显示它对应的div集 有人知道为什么它现在不这么做吗 JS HTML HTML网站模板 jQuery插件 Tumblr主题 WordPress主题 此 $('.itemLinks [data-category=' + target_category + ']').show(); 应该是这个 $('.itemLinks[data-category="' + target_category + '"]').show

我很快就画了一张提琴来概括我的问题:

我试图单击一个div,获取它的data属性并显示它对应的div集

有人知道为什么它现在不这么做吗

JS

HTML


HTML网站模板
jQuery插件
Tumblr主题
WordPress主题

$('.itemLinks [data-category=' + target_category + ']').show();
应该是这个

$('.itemLinks[data-category="' + target_category + '"]').show();
该空间被解释为子体选择器,但
数据类别
直接位于
itemLinks
元素上,而不是位于子体上

我还在属性选择器的值周围添加了引号。API需要它


演示:

为了改进代码,jQuery提供了.data()来检索数据集的值,因此不使用attr()而使用data()


演示:

始终在问题本身中包含相关代码/标记。原因:上面的代码与HTML 5兼容,jQuery努力使开发人员的工作更轻松。@benhowdle89:它所做的只是将数据属性导入jQuery的
.data()
系统。如果你要做的只是读取数据,那真的没什么区别。因为您已经在使用
数据-
属性,所以您已经兼容HTML5了。jQuery实际上并不使用HTML5
dataset
属性来读取数据。但是在足够多的浏览器支持它之后,您将能够执行
这个.dataset.target\u category
来检索数据。没错,但是有工具集可以使用总是很好的,这是我个人的意见。当然。我只是说,除非您在jQuery的数据缓存中使用它,否则它不会有太大的区别。最终,访问它的最佳方法将是使用
dataset
属性,但直到有足够的支持为止。
$('.itemLinks [data-category=' + target_category + ']').show();
$('.itemLinks[data-category="' + target_category + '"]').show();
 var target_category = $(this).data('target_category');