Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.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 从数据获取计数-*属性不起作用,为什么?_Javascript_Jquery - Fatal编程技术网

Javascript 从数据获取计数-*属性不起作用,为什么?

Javascript 从数据获取计数-*属性不起作用,为什么?,javascript,jquery,Javascript,Jquery,每次单击给定的th时,我都试图获取数据计数属性,下面是我的操作方法。由于某种原因,data\u id的值总是undefined,我无法找到原因。一定很傻 我错过了什么 $(.s_头”)。单击(函数(){ var column_id=$(this.attr('id'); var data_id=$('#'+列_id).data('count'); 控制台日志(列id); console.log(数据标识); 如果(数据标识%2==0){ console.log(“偶数”); }否则{ 控制台日志

每次单击给定的
th
时,我都试图获取
数据计数
属性,下面是我的操作方法。由于某种原因,
data\u id
的值总是
undefined
,我无法找到原因。一定很傻

我错过了什么

$(.s_头”)。单击(函数(){
var column_id=$(this.attr('id');
var data_id=$('#'+列_id).data('count');
控制台日志(列id);
console.log(数据标识);
如果(数据标识%2==0){
console.log(“偶数”);
}否则{
控制台日志(“奇数”);
}
$(“#”+列id).data('count',data_id+1);
});

第1列
第2列
第3列

我不知道为什么
.data()
不起作用,但是您可以使用
这个.dataset
来简化代码,因为
.data()
将把值存储在jQuery的全局对象中,而不是更新dom

$(.s_头”)。单击(函数(){
var count=parseInt(this.dataset.count);
log(计数%2==0?“偶数”:“奇数”);
this.dataset.count++;
});

第1列
第2列
第3列

问题在于您的jQuery版本。从:

从jQuery1.4.3HTML5数据开始,属性将自动拉入jQuery的数据对象。jQuery1.6中更改了使用嵌入破折号的属性处理,以符合W3CHTML5规范

将代码段切换到1.4.3而不是1.4.1可以解决此问题,以便
.data('count')
返回
'0'
。请注意,您在设置数据时仍然存在键入错误(您使用的是
.data('counter',…)
而不是
.data('count',…)
.data()
仅在版本1.4.3或更高版本中可用。请更新您的jquery版本或使用
.attr(“data count”)

$(.s_头”)。单击(函数(){
var column_id=$(this.attr('id');
var data_id=$('#'+列_id).attr('data-count');
控制台日志(列id);
console.log(数据标识);
如果(数据标识%2==0){
console.log(“偶数”);
}否则{
控制台日志(“奇数”);
}
$(“#”+列id).data('计数器',数据id+1);
});

第1列
第2列
第3列
改用
var data_id=$(“#”+column_id).attr('data-count');

$(.s_头”)。单击(函数(){
var column_id=$(this.attr('id');
var data_id=$('#'+列_id).attr('data-count');
控制台日志(列id);
console.log(数据标识);
如果(数据标识%2==0){
console.log(“偶数”);
}否则{
控制台日志(“奇数”);
}
$(“#”+列id).data('计数器',数据id+1);
});

第1列
第2列
第3列

您正在获取
$(this)
的id,并搜索与提取的id对应的元素,即
$(this)
?@Phiter不确定您在问什么,您能详细说明一下吗?查找是不必要的。id查找正在查找刚刚单击的元素。