Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.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:typeof attr.name返回未定义的_Javascript - Fatal编程技术网

JavaScript:typeof attr.name返回未定义的

JavaScript:typeof attr.name返回未定义的,javascript,Javascript,我试图从我页面上的每个标记中获取所有可能的数据-*属性 var el = document.body.querySelectorAll("*"); for(i=0;i<el.length;i++){ var datas = [].filter.call(el[i].attributes, function(at) { return /^data-/.test(at.name); }); } var el=document.body.queryselectoral(“*”); 对于(i

我试图从我页面上的每个标记中获取所有可能的数据-*属性

var el = document.body.querySelectorAll("*");
for(i=0;i<el.length;i++){
  var datas = [].filter.call(el[i].attributes, function(at) { return /^data-/.test(at.name); });
}
var el=document.body.queryselectoral(“*”);
对于(i=0;i
var el=document.body.queryselectoral(“*”),
i=0,
j=0,
len=el长度;
对于(;i

我不知道它是否会更快,但对于新浏览器,您可以考虑使用
Object.keys(el[I].dataset)
()为什么不将该条件用于
.filter()
回调?
return/^data val$/.test(at.name);
…坦率地说,我不知道你的解决方案应该做什么。你只是把所有数据属性的名称,减去
数据-
部分,推到一个不存在的
节点
数组中,然后迭代
节点
,每次迭代都执行
.search()
(这不是本机方法)在整个
节点上
collection.cookie monster,我的坏。
节点
是在前面定义的,我使用的不是
.search()
而是
.indexOf()
。出于某种原因,我需要先获取所有数据属性,然后在其中搜索特定值。
var el = document.body.querySelectorAll("*");
for(i=0;i<el.length;i++){
  var datas = [].filter.call(el[i].attributes, function(at) { return /^data-/.test(at.name); });
  for(var k=0;k<datas.length;k++){
    nodes.push(datas[k].name.replace(/^data-/,""));
  }
  for(var l=0;l<nodes.length;l++) {
    if(nodes.search("val")>0){
      ...do my code here...
    }
  }
}
var el = document.body.querySelectorAll("*"),
    i = 0,
    j = 0,
    len = el.length;

for (; i < len; i++) {
    var x = el[i].attributes,
        len2 = x.length;
    for (; j < len2; j++) {
        if (x[j].name === "data-val") console.log("data-val present");
    }
}