从锚标记更改href,不带类或ID

时间:2018-10-31 00:14:17

标签: javascript jquery html css

我有一个事件插件,可以将所有日程表文本链接到主事件页面,如下所示:

<td><a href="http://apavtcongresso.staging.wpengine.com/event/congresso-apavt-2018/">Chegada dos primeiros congressistas</a></td>

但是,我需要更改特定锚标记的链接以重定向到其他页面,并且无法向<a>元素添加ID或类。

是否可以通过在<td></td>中查找文本来更改href属性,在本例中为“ Chegada dos primeiros congressistas”?

我知道我可以使用document.body.innerHTML = document.body.innerHTML.replace('Example 1', 'Change to Example 2');来更改文本本身,但是不知道如何更改属性。

谢谢

2 个答案:

答案 0 :(得分:1)

一种选择是使用jQuery及其:contains,它允许您简洁地选择具有特定内容的元素:

const a = $('a:contains(Chegada dos primeiros congressistas)');
a.prop('href', 'https://foo.bar');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td><a href="http://apavtcongresso.staging.wpengine.com/event/congresso-apavt-2018/">Chegada dos primeiros congressistas</a></td>
  </tr>
</table>

或者,如果您不希望使用大型库,则手动遍历与选择器匹配的a文件:

const a = Array.prototype.find.call(
  document.querySelectorAll('td > a'),
  a => a.textContent === 'Chegada dos primeiros congressistas'
);
a.href = 'https://foo.bar';
<table>
  <tr>
    <td><a href="http://apavtcongresso.staging.wpengine.com/event/congresso-apavt-2018/">Chegada dos primeiros congressistas</a></td>
  </tr>
</table>

答案 1 :(得分:0)

document.getElementsByTagName('a')[0].href = 'http://newlink.com'
<td><a href="http://apavtcongresso.staging.wpengine.com/event/congresso-apavt-2018/">Chegada dos primeiros congressistas</a></td>