Obțineți atributul href pe jQuery

Am câteva rânduri de tabel

<tr class="b_row">
    <td>
        <div class="cpt">
            <h2>
                <a href="/ro/ref/ref/1.html">example</a>
            </h2>
        </div>
    </td>
</tr>

<!--more elements -->

<tr class="b_row">
    <td>
        <div class="cpt">
            <h2>
                <a href="/ro/ref/two/23.html">example N</a>
            </h2>
        </div>
    </td>
</tr>

Trebuie să obțin hyperlinkuri în atribut. Folosesc acest script

function openAll()
{
    $("tr.b_row").each(function(){
    var a_href = $('div.cpt').find('h2 a').attr('href');
    alert ("Href is: " + a_href);
}

Problemă: variabila a_href este întotdeauna / ref/ref/1.html


person BILL    schedule 27.12.2011    source sursă


Răspunsuri (6)


În buclă, ar trebui să vă referiți la elementul curent procesat, așa că scrieți:

var a_href = $(this).find('div.cpt h2 a').attr('href');
person M. Hryszczyk    schedule 27.12.2011

var a_href = $('div.cpt').find('h2 a').attr('href');

ar trebui să fie

var a_href = $(this).find('div.cpt').find('h2 a').attr('href');

În prima linie, interogarea dvs. caută în întregul document. În al doilea, interogarea începe de la elementul tr și primește doar elementul de sub el. (Puteți combina find-urile dacă doriți, le-am lăsat separate pentru a ilustra ideea.)

person Dennis    schedule 27.12.2011

Foarte simplu, folosește this ca context: http://api.jquery.com/jQuery/#selector-context

var a_href = $('div.cpt', this).find('h2 a').attr('href');

Care spune, găsiți 'div.cpt' numai în interiorul this

person nachito    schedule 27.12.2011

Foloseste asta:

$(function(){
    $("tr.b_row").each(function(){
    var a_href = $(this).find('div.cpt h2 a').attr('href');
    alert ("Href is: "+a_href);

    });
});

Vedeți o demonstrație funcțională: http://jsfiddle.net/usmanhalalit/4Ea4k/1/

person Muhammad Usman    schedule 27.12.2011

adăugați o referință la this, care se referă la b_row dvs.:

$("tr.b_row").each(function(){
    var a_href = $( this ).find('div.cpt h2 a').attr('href');
    alert ("Href is: "+a_href);
});
person Mark Kahn    schedule 27.12.2011

Folosiți $(this) pentru a obține elementul dorință.

function openAll()
{
     $("tr.b_row").each(function(){
        var a_href = $(this).find('.cpt h2 a').attr('href');
        alert ("Href is: "+a_href);
     });
}
person Ariful Islam    schedule 27.12.2011