Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.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 无法从元标记访问数据_Javascript_Html - Fatal编程技术网

Javascript 无法从元标记访问数据

Javascript 无法从元标记访问数据,javascript,html,Javascript,Html,我试图使用javascript访问存储在标记中的数据,但由于某些原因,getAttribute函数无法工作 编写文档 document.writeHello,世界 document.write var metatags=document.getElementsByTagName'meta[id=candidate1]; metatags.getAttributedata-candidate document.writestatags 这是我的密码: 测试1、2 试试这个 var metata

我试图使用javascript访问存储在标记中的数据,但由于某些原因,getAttribute函数无法工作

编写文档 document.writeHello,世界 document.write

var metatags=document.getElementsByTagName'meta[id=candidate1]; metatags.getAttributedata-candidate document.writestatags 这是我的密码: 测试1、2 试试这个

 var metatags = document.getElementsByTagName('meta');
        var data=metatags[0].getAttribute("data-candidate")
        document.write(data)

通过使用以下代码,我能够获得您要查找的数据

var metatags = document.getElementById('candidate1');
metatags.getAttribute("data-candidate");
请看这里:

文件。写; document.writeHello,世界; 文件。编写

; var metatags=document.getElementById'candidate1'; metatags=metatags.getAttributedata-candidate; document.writestatags; 这是我的密码: 测试1、2 var metatags=document.getElementsByTagName'meta[id=candidate1];这条线错了。您应该使用querySelector按属性进行选择

编写文档 document.writeHello,世界 document.write

var metatags=document.querySelector'meta[id=candidate1]; var-candidate=metatags.getAttributedata-candidate; document.writestatags; document.write候选者-,候选者,; //如果您想要两者的值,请使用此代码 var metatags=document.getElementsByTagName'meta'; Array.prototype.forEach.callmetatags,functionmetaTag{ var-candidate=metaTag.getAttributedata-candidate; 文件。写候选人-,候选人; }; 这是我的密码: 测试1、2 别这样!这是一个非常非常糟糕的做法

标签是。它们控制文档字符集、视口、RSS提要等,提供有关页面社交媒体属性、作者、机器人下一页等的附加信息。您希望从JavaScript读取的用户数据和设置不应出现在此处。有一种方法可以将任何数据传递给JS:在其中放入一个脚本,并将一些全局变量设置为您想要的任何值:

<head>
    <script>
        var candidate1 = 1;
        var candidate1 = 2;
    </script>
    <script src="your.js"></script>
</head>
正如您所看到的,不需要标记。这为代码提供了更多的语义

关于你的问题:

你可能会读到和。第一个用于获取HTML标记名匹配的所有元素,另一个与类似CSS的选择器一起用于获取元素。你不能把这些混在一起。因此,您的元标记可能为null,因此无法对其调用getAttribute


小心!要进行调试,请使用。在实际产品中,您不应该使用document.write。

您是否尝试过将脚本标记放在body标记中?var metatags=document.getElementsByTagName'meta[id=candidate1];这条线错了。您应该使用查询选择器按属性进行选择。若要扩展Ronit的答案-document.querySelector'meta[id=candidate1]”或document.getElementById'candidate1',若要添加到前2条注释中,getElementsByTagName将返回一个没有getAttribute方法的元素,而不是一个有getAttribute方法的元素。如果使用getElementsByTagName,则必须访问每个元素以查询其属性。另外,getElementsByTagName只需要一个标记名,而不需要选择器字符串?它是否位于文档正文中的标记中?它是否在被页面调用的函数中?如果是在一个函数中,他的代码有更大的问题…说try这是没有帮助的,即使它解决了问题;你应该试着解释问题和解决办法。谢谢你的建议。我之所以以这种方式使用meta标记,是因为我正在使用Django python的web框架构建我的web应用程序,并计划在数据候选属性中保存来自jinja(一种模板语言)的值。我的理解是,jinja和javascript不能很好地协同工作,因此我们正在寻找一种方法来在html中对此进行排序。
console.info(candidate1, candidate2);