是否有一些方法,我可以运行以下:
var data = $("#dataTable").data('timer');
var diffs = [];
for(var i = 0; i + 1 < data.length; i++) {
diffs[i] = data[i + 1] - data[i];
}
alert(diffs.join(', '));
只有在id为#dataTable的元素上有一个名为data-timer的属性时?
是否有一些方法,我可以运行以下:
var data = $("#dataTable").data('timer');
var diffs = [];
for(var i = 0; i + 1 < data.length; i++) {
diffs[i] = data[i + 1] - data[i];
}
alert(diffs.join(', '));
只有在id为#dataTable的元素上有一个名为data-timer的属性时?
当前回答
这里所有的答案都使用了jQuery库。
但是普通的javascript非常简单。
如果你只想在id为#dataTable的元素也具有data-timer属性的情况下运行脚本,那么步骤如下:
// Locate the element
const myElement = document.getElementById('dataTable');
// Run conditional code
if (myElement.dataset.hasOwnProperty('timer')) {
[... CODE HERE...]
}
其他回答
还有:
if ($('#dataTable[data-timer]').length > 0) {
// logic here
}
你可以通过css属性选择来检查
if ($('#dataTable').is('[data-timer]')) {
// data-timer attribute exists
}
我发现这种方法在动态设置数据元素时效果更好:
if ($("#myelement").data('myfield')) {
...
}
var data = $("#dataTable").data('timer');
var diffs = [];
if( data.length > 0 ) {
for(var i = 0; i + 1 < data.length; i++) {
diffs[i] = data[i + 1] - data[i];
}
alert(diffs.join(', '));
}
你可以使用jQuery的hasData方法。
http://api.jquery.com/jQuery.hasData/
hasdata (element)的主要优点是,如果当前不存在数据对象,它不会创建数据对象并将其与元素关联。相比之下,jQuery.data(element)总是返回一个数据对象给调用者,如果之前不存在数据对象,则创建一个。
这只会检查元素上是否存在任何数据对象(或事件),它不能确认它是否有一个“timer”对象。