webForumDet fria alternativet

Hämta href-värde

11 svar · 263 visningar · startad av Vide

VideMedlem sedan dec. 19996 094 inlägg
#1

Hejsan!

Har sökt i formet men inte hittat.

Vad jag vill göra är att hämta värdet av href i en namngiven länk på samma sida, hur ser syntaxen ut för detta?

<a href="sida.asp" name="2">En länk</a>

Jag vill alltså hämta värdet som href har.

Mvh, Vide

SPiNMedlem sedan mars 20005 832 inlägg
#2

Du kan ju alltid använda DOM, men jag vet inte om det är det som du är ute efter. Fungerar iofs rätt dåligt, men det bör fungera i åtminstone IE och Mozilla ( Självklart på olika sätt ).

VideMedlem sedan dec. 19996 094 inlägg
#3

Nu är jag ingen kung på DOM, men hur kommer jag åt attributet där?

document.getElementById( "2" ).getAttributes[ "href" ].value

Koden ovan ger ju detta fel:
Error: document.getElementById("2") has no properties

Mvh, Vide

SPiNMedlem sedan mars 20005 832 inlägg
#4

Nej, nu sa jag tydligen fel. DOM fungerar så gott som likadant i Mozilla och IE tydligen, men IE har bara fler begränsningar.

DarrenMedlem sedan dec. 2002741 inlägg
#5

Kan du ändra länkdeklarationen så du har id-attributet istället för name?

Otestat men värt att försöka med... ;)

var aTag = document.getElementsById('test'); // hämtar a-taggen med id-attributet test

var aAtt = aTag[0].getAttribute(aTag[0].attributes[0].name); // hämtar värdet som href-attributet har

document.write(aAtt);
<a href="test.html" id="test">Länk 2</a>
SPiNMedlem sedan mars 20005 832 inlägg
#6
...
<a href="sida2.html" id="elementNo2">Klicka</a>
...

Samt:

var element = document.getElementById( "elementNo2" );
var txt = element.getAttribute( "href" );
document.writeln( txt );
VideMedlem sedan dec. 19996 094 inlägg
#7

Jag har ingen möjlighet att påverka A-taggarna, dom genereras av en server-komponent.

Koden som genereras ser ut såhär:

<a HREF="filen.asp?fid=;2;#2" NAME="2">

Vad jag egentligen vill ha ut är värdet av fid, men detta är en bit på vägen.

JojoxxMedlem sedan juni 20004 306 inlägg
#8
function getLinkByName(str){
	for(var n=0;n<document.links.length;n++){ if(document.links[n].name==str){ return document.links[n]; }}
}

alert(getLinkByName("2").href);
VideMedlem sedan dec. 19996 094 inlägg
#9

Den säger fortfarande att den inte har några properties.

JojoxxMedlem sedan juni 20004 306 inlägg
#10

Det är inte så att du kör scriptet innan länken genererats?

Funkar:

<a HREF="filen.asp?fid=;2;#2" NAME="2">
<script language="JavaScript" type="text/javascript">
function getLinkByName(str){
	for(var n=0;n<document.links.length;n++){ if(document.links[n].name==str){ return document.links[n]; }}
}

alert(getLinkByName('2').href)
</script>

Funkar inte:

<script language="JavaScript" type="text/javascript">
function getLinkByName(str){
	for(var n=0;n<document.links.length;n++){ if(document.links[n].name==str){ return document.links[n]; }}
}

alert(getLinkByName('2').href)
</script>
<a HREF="filen.asp?fid=;2;#2" NAME="2">
SPiNMedlem sedan mars 20005 832 inlägg
#11
var objTree = document.getElementsByTagName( "a" ); // Ger dig alla länkar till objTree

// Loopa länkarna
for( var i = 0; i < objTree.length; i++ ) {
     var hrefTxt = objTree.item( i ).getAttribute( "href" ); // Nu har du href-texten i variabeln hrefTxt

     document.writeln( hrefTxt );
}

Om det nu är en möjlighet. Det här hämtar alla a-taggar i dokumentet.

Variabeln hrefTxt kan du ju sedan köra genom ett RegExp för att få det du vill. Kanske är lite hjälp på vägen ivf. :)

VideMedlem sedan dec. 19996 094 inlägg
#12

Tack, nu fungerar det!!! :D

Genererad på 385 ms · cache AV · v20260730165559-full.f96bc7eb