Get the tagName element inside the class
I want to get an element a
inside a class and change it.
My HTML:
<div class="alignleft">
<a href="http://cismdomain.com/articles/page/2/">« Older Entries</a>
</div>
I want to change Older Entries
to Previous
.
My JavaScript code:
var oldentries = document.querySelector('.alignleft');
var ainside = document.getElementsByTagName('a');
oldentries.ainside.innerHTML = "Previous";
but it gives me undefined
.
source to share
Once you use Document.querySelector () to get the elements with a class '.alignleft'
, you can also do oldentries.querySelector('a');
to get 'a'
inside oldentries
and then change the 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>
source to share
You need to update the textContent
element property <a>
.
Working example:
var linkElement = document.querySelector('.alignleft a');
linkElement.textContent = 'Previous';
<div class="alignleft">
<a>Older Entries</a>
</div>
source to share
document.getElementsByTagName
returns a collection of HTML. So you need to iterate over it (in your case, this will be the first entry).
var oldentries = document.querySelector('.alignleft');
var ainside = document.getElementsByTagName('a');
for(i=0;i<ainside.length;i++) {
ainside[i].innerHTML = "Previous";
}
source to share
Your code will output something like
document.querySelector('.alignleft').document.getElementsByTagName('a').innerHTML = "Previous";
Also, getElementsByTagName('a')
Array will not map to an object that you can apply .innerHTML
to.
var ainside = document.querySelector('.alignlef a'); // Select first occurance of a inside the first occurance of .alignleft in the document
ainside.innerHTML = "Previous";
source to share