Ang*_*ela 183 javascript jquery
有什么方法可以运行以下内容:
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(', '));
Run Code Online (Sandbox Code Playgroud)
只有在id为#dataTable的元素上有一个名为data-timer的属性?
nii*_*iru 279
if ($("#dataTable").data('timer')) {
...
}
Run Code Online (Sandbox Code Playgroud)
注意这仅true
在data属性不是空字符串或"falsey"值时返回,例如0
或false
.
如果要检查data属性是否存在,即使为空,也要执行以下操作:
if (typeof $("#dataTable").data('timer') !== 'undefined') {
...
}
Run Code Online (Sandbox Code Playgroud)
Pau*_*ing 108
if (typeof $("#dataTable").data('timer') !== 'undefined')
{
// your code here
}
Run Code Online (Sandbox Code Playgroud)
sad*_*ave 35
为了提供与上述不同的答案; 你可以这样检查Object.hasOwnProperty(...)
:
if( $("#dataTable").data().hasOwnProperty("timer") ){
// the data-time property exists, now do you business! .....
}
Run Code Online (Sandbox Code Playgroud)
或者,如果你想要迭代多个数据元素,你可以变换.data()
对象并迭代它,如下所示:
var objData = $("#dataTable").data();
for ( data in objData ){
if( data == 'timer' ){
//...do the do
}
}
Run Code Online (Sandbox Code Playgroud)
不是说这个解决方案比这里的任何其他解决方案更好,但至少它是另一种方法......
Max*_*Max 11
或者与一些香草JS结合使用
if ($("#dataTable").get(0).hasAttribute("data-timer")) {
...
}
Run Code Online (Sandbox Code Playgroud)
BZi*_*ink 10
您可以使用jQuery的hasData方法.
http://api.jquery.com/jQuery.hasData/
jQuery.hasData(element)的主要优点是,如果当前不存在,它不会创建数据对象并将其与元素关联.相反,jQuery.data(element)总是将一个数据对象返回给调用者,如果以前没有数据对象,则创建一个数据对象.
这将仅检查元素上是否存在任何数据对象(或事件),它将无法确认它是否具有"计时器"对象.
如果要区分空值和缺失值,可以使用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>
Run Code Online (Sandbox Code Playgroud)
所以从最初的问题来看,你会这样做.
if("timer" in $("#dataTable").data()) {
// code
}
Run Code Online (Sandbox Code Playgroud)
这里的所有答案都使用 jQuery 库。
但是香草 javascript 非常简单。
如果你想只在带有id
of的元素#dataTable
也有data-timer
属性的情况下运行脚本,那么步骤如下:
// Locate the element
const myElement = document.getElementById('dataTable');
// Run conditional code
if (myElement.dataset.hasOwnProperty('timer')) {
[... CODE HERE...]
}
Run Code Online (Sandbox Code Playgroud)
您可以创建一个非常简单的jQuery插件来查询元素:
$.fn.hasData = function(key) {
return (typeof $(this).data(key) != 'undefined');
};
Run Code Online (Sandbox Code Playgroud)
然后你可以简单地使用 $("#dataTable").hasData('timer')
陷阱:
false
仅当值不存在时才会返回(是undefined
); 如果设置为false
/ null
它hasData()
仍然会返回true
.$.hasData()
仅检查是否设置了元素上的任何数据. 归档时间: |
|
查看次数: |
220754 次 |
最近记录: |