如何在哈巴狗中使用id来获取元素

时间:2017-10-03 09:35:04

标签: javascript html express pug

我的哈巴狗,

span
  a#survey.afont(href='/disease-description/Endocrinology')= disease_desc.Specialities[i].name

我的js,

  var name  = document.getElementById('survey');
  console.log(name);

当我尝试控制div id的值时,它会变为空。任何人都可以在我犯错的地方建议我帮忙。

2 个答案:

答案 0 :(得分:2)

请注意,在Jade / Pug模板中的<script></script>标记内编写的javascript只会在模板在浏览器中呈现时运行。当解析Jade / Pug文件时,它不会在服务器端运行。

现在,在浏览器端,为了访问该元素,您的脚本应位于页面底部,以便在运行脚本代码时,所有元素都已加载到DOM中。

否则,如果您需要将脚本代码放在头部,只有在使用以下事件加载DOM后才能运行代码:

document.addEventListener("DOMContentLoaded", function(event) { 
  var name  = document.getElementById('survey');
  console.log(name);
});

答案 1 :(得分:-1)

通过查看您的代码,我意识到您没有在问题中提到的div元素。如果您想使用id属性使用javascript从pug文件中获取标签的目标。试试这个:

//Assume this is your Pug File
a(id='survey') Survey //Survey is the value e.g <a id="survey">Survey</a>

//From Here is your javascript
var survey_element = document.getElementById("survey");
//you must remember that survey_element is an object and you can't print it.
//If you want to print the value, then select the value property
console.log(survey_element.value);