How do I get the tag attribute by javascript without using an identifier or class?

advertisements

I am new in javascript.I am trying this below code to get href attribute.

<a href="facebook.com"  onclick="cheak()">Facebook</a>

        <script type="text/javascript">
        function cheak()
        {
            var a= document.getElementsByTagName("a").getAttribute('href');
            alert(a);
        }

</script>

I know this is working by below code

document.getElementById("myid").getAttribute('href');  // if I use any id

But in tag I don't want to use any id or class. How can I get this attribute without using any id or class in a tag.


Preface: Below, I've answered the question of how to find an element without using an id or class, in the general case. But if you just want the element from within your cheak function, then Zain's answer is the correct way to do that (with minimal changes to your code; arguably more correct might be modern event hookup).


But in tag I don't want to use any id or class. How can I get this attribute without using any id or class in a tag.

You reach for the Swiss army knife of element selection: document.querySelector. With it, you can use any CSS selector that matches the element:

var href = document.querySelector("any selector here").getAttribute("href");

querySelector returns the first match in the document. (There's also querySelectorAll, which returns a list.) They're both supported in all modern browsers, and also IE8.

Since you have the full power of CSS selectors, you can use anything about the position of the element in the document to find it.

There's too little context in your question for a specific example, but for instance if it's the first a in the document:

var href = document.querySelector("a").getAttribute("href");
alert(href);
<a href="facebook.com"  onclick="cheak()">Facebook</a>

Or using that onclick:

var href = document.querySelector("a[onclick='cheak()']").getAttribute("href");
alert(href);
<a href="facebook.com"  onclick="cheak()">Facebook</a>