Could anyone help me with a function for JavaScript which searches the source code and compares all of the links on the site with the specific link I am looking for.
function find_link_by_href(address)
links = document.getElementsByTagName("a");
for(var i = 0; i < links.length; i++) {
if( links[i].href === address ) {
console.log("Url found");
return;
}
}
You can call it like this:
find_link_by_href("http://www.youtube.com/SPECIFICURL");
Use Array.prototype.some
to see if at least one element in document.links
has the href
you're looking for.
var has_link = [].some.call(document.links, function(link) {
return link.href === 'http://www.youtube.com/SPECIFICURL';
});
You can patch it in old browsers using the patch found at MDN Array#some
You can use document.links to get the anchors, then just loop through grabbing the href, like this:
var arr = [], l = document.links;
for(var i=0; i<l.length; i++) {
arr.push(l[i].href);
}
//arr is now an array of all the href attributes from the anchors in the page
See here.
Then loop through the array to check for your specific link.
Try querySelectorAll()
with CSS3 selectors:
document.querySelectorAll('a[href*="http://www.youtube.com/SPECIFICURL"]')
Fiddle
This selector says find all links with an href attribute that contains a specific string. Lets break this down a little bit:
a
- this is the element type, e.g. "link"href
- this is the element attribute*=
- this essentially means contains. There are different type of equality checks that can be used: starts with, contains word, ends with, etc. The jQuery selectors documentation is quite good."..."
- everything in quotes after the equal sign is the substring the query is looking for.