Грег понял, что вам действительно нужна ссылка " label ", а не href URL. Но я бы взял все элементы с getElementsByTagName ('A') . Затем выполните итерацию по их firstChild узлам.
Подобрать ' nodeValue ' из ' firstChild ' так же просто, как получить innerHTML или (innerText, который кто-то упомянул, который менее поддерживается).
Вот минимальный пример: слова «word1», «word2» и «word3».
Я просто добавлю, что если вы хотите ограничить количество просматриваемых ссылок для этого подмножеством ссылок на странице или сайте, вы можете различать их другими способами, установив конкретное имя класса для ссылок, которые вы хотите поиск. Было бы немного усложнить проверку className ссылок, которые вы захватили. При этом простая итерация узла:
Пример:
<html>
<head>
<title>JavaScript match link label</title>
<script type="text/javascript">
var keywords = ['word1','word2','word3'];
function linklabels() {
var aels = document.getElementsByTagName && document.getElementsByTagName('A');
var aelsCt = aels.length;
var keywordsCt = keywords.length;
for (var i = 0; i < aels.length; i++) {
var v= aels[i].firstChild.nodeValue;
//this is the link label, the text seen as the link
for (var j=0; j < keywordsCt; j++) {
var re = new RegExp(keywords[j]);
if (re.test(v)) {
alert('refreshing to http://google.com/' + v);
//window.location.href = "http://google.com/" + v;
}
}
}
}
window.onload=linklabels;
</script>
</head>
<body>
<p><a href="#">word1</a> | <a href="#">word2</a> | <a href="#">word3</a>
<br /><a href="#">word1</a> | <a href="#">word2</a> | <a href="#">word3</a></p>
</body>
</html>