I have some table rows
<tr class="b_row">
<td>
<div class="cpt">
<h2>
<a href="/ref/ref/1.html">example</a>
</h2>
</div>
</td>
</tr>
<!--more elements -->
<tr class="b_row">
<td>
<div class="cpt">
<h2>
<a href="/ref/two/23.html">example N</a>
</h2>
</div>
</td>
</tr>
I need to get hyperlinks in attribute. I use this script
function openAll()
{
$("tr.b_row").each(function(){
var a_href = $('div.cpt').find('h2 a').attr('href');
alert ("Href is: " + a_href);
}
Problem: variable a_href
is always / ref/ref/1.html
add a reference to
this
, which refers to yourb_row
:Use
$(this)
for get the desire element.should be
In the first line, your query searches the entire document. In the second, the query starts from your
tr
element and only gets the element underneath it. (You can combine thefind
s if you like, I left them separate to illustrate the point.)In loop you should refer to the current procceded element, so write:
Very simply, use
this
as the context: http://api.jquery.com/jQuery/#selector-contextWhich says, find
'div.cpt'
only insidethis
Use this:
See a working demo: http://jsfiddle.net/usmanhalalit/4Ea4k/1/