是否有一些方法,我可以运行以下:
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的属性时?
当前回答
在我看来,这是最简单的解决方案,选择所有具有特定数据属性的元素:
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(', '));
下面是它如何工作的截图。
其他回答
if (typeof $("#dataTable").data('timer') !== 'undefined')
{
// your code here
}
还有:
if ($('#dataTable[data-timer]').length > 0) {
// logic here
}
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进行如下检查。
<div id="element" data-foo="bar" data-empty=""></div>
<script>
"foo" in $('#element').data(); // true
"empty" in $('#element').data(); // true
"other" in $('#element').data(); // false
</script>
从最初的问题你可以这样做。
if("timer" in $("#dataTable").data()) {
// code
}
这里所有的答案都使用了jQuery库。
但是普通的javascript非常简单。
如果你只想在id为#dataTable的元素也具有data-timer属性的情况下运行脚本,那么步骤如下:
// Locate the element
const myElement = document.getElementById('dataTable');
// Run conditional code
if (myElement.dataset.hasOwnProperty('timer')) {
[... CODE HERE...]
}