Получить элемент tagName внутри класса

Я хочу получить элемент a внутри класса и изменить его.

Мой HTML это:

<div class="alignleft">
    <a href="http://cismdomain.com/articles/page/2/">« Older Entries</a>
</div>

я хочу измениться Older Entries в Previous,

Мой код JavaScript:

var oldentries = document.querySelector('.alignleft');
var ainside = document.getElementsByTagName('a');
oldentries.ainside.innerHTML = "Previous";

но это дает мне undefined,

5 ответов

После того как вы используете Document.querySelector(), чтобы получить элементы с классом '.alignleft' Вы также можете сделать oldentries.querySelector('a'); чтобы получить 'a' элемент внутри oldentries и затем измените element.innerHTML:

var oldentries = document.querySelector('.alignleft'),
    ainside = oldentries.querySelector('a');

ainside.innerHTML = 'Previous';
<div class="alignleft">
  <a href="http://cismdomain.com/articles/page/2/">« Older Entries</a>
</div>

Вам необходимо обновить textContent собственность <a> элемент.

Рабочий пример:

var linkElement = document.querySelector('.alignleft a');
linkElement.textContent = 'Previous';
<div class="alignleft">
<a>Older Entries</a>
</div>

Вы можете искать свой элемент с помощью вызова signle для querySelector с помощью более точного селектора: напрямую использовать .alignLeft a вместо того, чтобы делать это дважды.

Этот код работает:

var entries = document.querySelector('.alignLeft a');
entries.innerHTML = "Previous"

Ваш код будет визуализировать что-то вроде

document.querySelector('.alignleft').document.getElementsByTagName('a').innerHTML = "Previous";

Также, getElementsByTagName('a') сделает массив, а не объект, который вы можете применить .innerHTML к.

var ainside = document.querySelector('.alignlef a'); // Select first occurance of a inside the first occurance of .alignleft in the document

ainside.innerHTML = "Previous";

document.getElementsByTagName возвращает HTML-коллекцию. Поэтому вам нужно перебрать его (в вашем случае это будет первая запись).

var oldentries = document.querySelector('.alignleft');
var ainside = document.getElementsByTagName('a');
for(i=0;i<ainside.length;i++) {
    ainside[i].innerHTML = "Previous";
}
Другие вопросы по тегам