Jquery zamenjava določenega href linka

Zdravo,
zanima me, če mi lahko pomagate pri naslednjem problemu.

V htmlju se generira tale povezava:

<a href="single-oglas/items/10.html"></a>

Rad pa bi z jQuery-jom zamenjal samo "single-oglas" z "public-oglas".

Sem probal že vrsto "skript" vendar nikakor ne morem usposobiti.

Hvala.

8 odgovorov

Nekaj v stilu:

$('a').each(function() {
    var e = $(this);
    e.attr('href', e.attr('href').replace('single-oglas', 'public-oglas'));
});

Nisem stestiral, poskusi :)

2

v jQuery lahko targeriraš tudi po href:

$('a[href="single-oglas/items/10.html"]').each(function(index) {

});

edit: Vini prehitu :)

2

SpinX ima prav, ampak v primeru, da imaš več različnih povezav, ki se vse začnejo z "single-oglas", bi to lahko sfiltriral takole:

$('a[href^="single-oglas"]').each(function() {
    var e = $(this);
    e.attr('href', e.attr('href').replace('single-oglas', 'public-oglas'));
});

Še pojasnilo, da te naučimo loviti ribe, operator ^= je "starts with" :)

3

Zdravo,
hvala za hitro pomoč, vendar nič od navedenega ne deluje.

Pozabil sem pa tudi prej omeniti, vendar me je Vini prebral v razmišljanju, od "single-oglas"/ naprej je generični del.

Verjetno zadevo vtikaš v <head>, kajne? Tam DOM še ni ready, pa se nič ne zgodi. Poskusi takole:

$(document).ready(function() {
    $('a[href^="single-oglas"]').each(function() {
        var e = $(this);
        e.attr('href', e.attr('href').replace('single-oglas', 'public-oglas'));
    });
});

Več o tem, kar sem naredil, si lahko prebereš tukaj.

Zdravo,
sem uspel narediti s tem.

$(document).ready(function() {
    var lnk = $('div.link16 a').attr("href");
    $('div.link16 a').attr("href",lnk.replace('single-oglas','vsi-oglasi-podjetja'));
});

Hvala za vso pomoč, je prišla prav ;)

Vini sem uporabil tvojo izvedbo, ker z mojo ni več generičnega linka gradilo, ampak je vedno uporabilo prvi item.

Hvala.

Aha, vidiš, pa res, nisem prej opazil. Skrivnost je v .each(), da boš vedel kje si ga pri svoji verziji polomil :)