检查元素是否附加了数据属性?

时间:2014-11-24 14:42:14

标签: jquery

如何检查附加到元素的自定义数据属性? 这是我的代码。 如何查看img是否附加了任何数据*?

<img id="myImg" src="#" data-tablet="img/xl.jpg"   data-desktop="img/xl.jpg">

感谢。

5 个答案:

答案 0 :(得分:3)

你可以这样做

if($('img').is('[data-tablet]'))

或者,如果您只想查看是否有data-*,您可以通过搜索您使用get获得的元素的outerHTML或使用索引器。

if($('img')[0].outerHTML.indexOf("data-") > -1)

答案 1 :(得分:0)

我会在检查字符串“data - ”

时迭代属性
var el = document.getElementById("myImg");
for (var i = 0; i < el.attributes.length; i++){
   // string comparison on 'data' with : el.attributes[i] 
}

答案 2 :(得分:0)

function checkCustomData(objectId){

    var attributes = document.getElementById(objectId).attributes;
    var customDataStatus = false;

    for (var x=0; x<attributes.length ; x++ ) {

        if (attributes[x].name.indexOf("data-") == 0) var customDataStatus = true;

    }

    return customDataStatus

}


console.log(checkCustomData("myImg"))

小提琴:http://jsfiddle.net/pyqd1fLg/

答案 3 :(得分:0)

尝试

$.fn._hasData = function() {
  return [].some.call(this[0].attributes, function(v, k) {
    return /^data-/.test(v["name"])
  })
};
console.log($("img")._hasData())

$.fn._hasData = function() {
  return [].some.call(this[0].attributes, function(v, k) {
    return /^data-/.test(v["name"])
  })
};
console.log($("img")._hasData())
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<img id="myImg" src="#" data-tablet="img/xl.jpg"   data-desktop="img/xl.jpg">

答案 4 :(得分:0)

您可以使用Object.keys Object.keys(document.getElementById('myImg').dataset).length