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
11 svar · 263 visningar · startad av Vide
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
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 ).
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
Nej, nu sa jag tydligen fel. DOM fungerar så gott som likadant i Mozilla och IE tydligen, men IE har bara fler begränsningar.
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>
...
<a href="sida2.html" id="elementNo2">Klicka</a>
...
Samt:
var element = document.getElementById( "elementNo2" );
var txt = element.getAttribute( "href" );
document.writeln( txt );
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.
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);
Den säger fortfarande att den inte har några properties.
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">
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. :)
Tack, nu fungerar det!!! :D