【发布时间】:2017-02-12 16:12:37
【问题描述】:
我很可能有错误逻辑,但我只是在学习 JavaScript 和 Jekyll。
我的目标是通过 JavaScript 操作 HTML 元素,并在该元素的内部 HTML 中放置一些 Jekyll 变量。一切都是从带有jekyll serve 的本地开发目录加载的。我尝试了以下方法:
HTML:
<html>
<body>
<h2>Something</h2>
</body>
</html>
JavaScript:
document.addEventListener("DOMContentLoaded", function () {
manipulate = document.getElementsByTagName("h2");
manipulate[0].innerHTML = "{{ page.title }}";
});
结构:
├── _config.yml
├── contact-us.md
├── css
│ └── main.scss
├── feed.xml
├── _includes
│ ├── footer.html
│ ├── header.html
│ ├── head.html
│ ├── readtime.html
│ └── sidebar.html
├── index.html
├── js
│ ├── anchor.js
│ └── tags.js
├── _layouts
│ ├── default.html
│ ├── page.html
│ ├── post.html
│ ├── single.html
│ └── tags.html
├── _posts
├── readme.md
├── _sass
│ ├── _base.scss
│ ├── _layout.scss
│ └── _syntax-highlighting.scss
├── _site
│ └── [...]
└── tags.md
我从 tags.md
到达 tags.js例如,如果我的页面标题是“foo”,那么我假设<h2> 标记中的以下 HTML 输出(这是我的目标):
<h2>foo</h2>
但是相反它给了我以下信息:
<h2>{{ page.title }}</h2>
我认为这是因为 jekyll 将变量的值呈现在 jinja 格式中并为我们提供了输出,然后我将字符串 "{{ page.title }}" 放到了 <h2> 标记中。
我确定我遗漏了一些东西,但如果您在某个项目中使用了类似的东西,我将不胜感激。
【问题讨论】:
-
你从哪里加载你的 JavaScript?是来自 Jekyll 服务器还是其他地方?你能告诉我们你的目录结构是什么样的吗?
-
再次感谢您的评论凯文!一切都是用 jekyll serve 从本地开发目录加载的,我用项目的结构更新了问题。
标签: javascript jekyll dom-manipulation