在 Pug 中使用 querySelector 获取标签的 ID

Get id of tag using querySelector in Pug

我是 Whosebug 的新手。 我的问题由 kml 和哈巴狗组成。 我的 kml 文件如下所示:

<Document>
<Placemark id="LIB02">
  <name>Agincourt</name>
  <description>Address: 155 Bonis Ave., Toronto, ON, M1T 3W6&lt;br/&gt;Link: https://www.torontopubliclibrary.ca/detail.jsp?R=LIB02</description>
  <address>155 Bonis Ave., Toronto, ON, M1T 3W6</address>
  <phoneNumber>416-396-8943</phoneNumber>
  <Point>
    <coordinates>-79.29342962962961,43.78516666666665</coordinates>
  </Point>
</Placemark>
</Document>

我需要使用 pug 访问地标的 ID,并将其传递给我的库 javascript 函数。我的哈巴狗文件如下:

li
- var id = library.querySelector("Document.Placemark/{id}").; //THE ERROR LIES HERE
- var p = library.querySelector("name").textContent;
a(href=`/libraries/${p}`) #{p} 

如何获取地标的 ID?

哈巴狗是怎么用的?

  1. 通过 HtmlWebpackPlugin
  2. 将 pug 渲染为静态 HTML
  3. 在 JavaScript 中加载哈巴狗,例如 const tmpl = require('template.pug')
  4. webpack.config.js
  5. 使用哪个哈巴狗装载机
  6. 服务器端渲染?

您应该将具体数据传递给哈巴狗。 例如,如果您在 JavaScript:

中加载哈巴狗
const tmpl = require('template.pug');

const name = library.querySelector("name").textContent;
const renderedHtml = tmpl({
  name,
  // ... pass other data
});

哈巴狗

li
  a(href=`/libraries/${name}`) #{name}

renderedHtml 包含 HTML 字符串可以反插入到 DOM.

如果您已经将地标分配给图书馆,您可以通过以下方式获取其 ID:

     library.id