簡體   English   中英

查詢選擇器不適用於模板文字

[英]Query Selector not working on template literals

我有一個腳本可以渲染一些 HTML 內容,看起來像這樣。

renderJobs = async () => {
const jobs = await getJobs();
const view = `
    ${jobs.map(companyName => `
        <div class="show">
            <div class="company-details">
                <p>${companyName.company}</p>
                <object type="image/svg+xml" data="${companyName.logo}"></object>
                <h3>${companyName.position}</h3>
                <p class="details">${companyName.postedAt} - ${companyName.contract} - ${companyName.location}</p>
            </div>
            <div class="tags">
                <p>${companyName.role}</p>
                ${companyName.languages.map(lang => `
                    <p>${lang}</p>
                `).join('')}
                <p>${companyName.tools}</p>
                <p>${companyName.level}</p>
                
            </div>
        </div>
    `).join('')}
`
return view }

現在,我正在嘗試使用 class 標簽對每個 div 上的所有孩子進行 select。 所以我可以稍后循環它們並只渲染具有特定內容的卡片。

這是該片段:

selector = () => {
const tagName = document.querySelectorAll('.tags').children;
console.log(tagName)}

但它返回未定義,我不知道是否使用模板文字規則會改變 DOM。 我嘗試了事件監聽器 DOMContentLoaded 但似乎沒有用。 我還嘗試了長度屬性以查看 id 有什么回來,但我得到的只是 0。謝謝

querySelectorAll()返回 html 元素的列表。 所以它沒有任何children財產。 您將不得不遍歷所有元素然后獲取子元素。 如果你想要所有元素的孩子,當你可以使用flatMap()

const tagName = [...document.querySelectorAll('.tags')].flatMap(x => x.children);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM