首页 > 解决方案 > Javascript 优雅地在 URL 的其余部分前面加上一个 slug?

问题描述

任何人都可以提供一个优雅的 Javascript 片段来更改这些 URL

<a href="joebiden" title="Twitter" aria-label="Twitter">Joe</a>
<a href="berniesanders" title="Twitter" aria-label="Twitter">Bernie</a>

像这样的 URL:

<a href="https://twitter.com/joebiden" title="Twitter" aria-label="Twitter">Joe</a>
<a href="https://twitter.com/berniesanders" title="Twitter" aria-label="Twitter">Bernie</a>

所以推特 URL 是前置的?

标签: javascripthtml

解决方案


此代码段查找值为“Twitter”的<a>元素aria-label,并将“ https://twitter.com/ ”添加到现有href值。

for (let a of Object.values(document.getElementsByTagName('a'))) {
  if (a.getAttribute('aria-label') === 'Twitter') {
    a.setAttribute('href', 'https://twitter.com/' + a.getAttribute('href'))
  }
}

// Show results
for (let a of Object.values(document.getElementsByTagName('a'))) {
    console.log(a.getAttribute('href'));
}
<a href="joebiden" title="Twitter" aria-label="Twitter">Joe</a>
<a href="berniesanders" title="Twitter" aria-label="Twitter">Bernie</a>


推荐阅读