---
title: "plocka ur rel"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/167108-plocka-ur-rel"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "Fuel"
published: "2007-12-09T21:41:05.000Z"
updated: "2007-12-10T16:24:28.000Z"
replies: 13
views: 682
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/167108-plocka-ur-rel"
---

# plocka ur rel

## #1 — Fuel, 2007-12-09T21:41Z

hur plockar jag ut det som står i en länks rel="" på bästa sätt ?

Permalänk: https://www.webforum.nu/p/167108

## #2 — nitro2k01, 2007-12-09T21:54Z

Leta rätt på DOM-noden och kör getAttribute("rel"); på objektet?

Permalänk: https://www.webforum.nu/p/2060004

## #3 — Fuel, 2007-12-09T22:12Z

attribs = mmmmm.getAttribute("rel").split(" ");
attribs\[2\]

menar du?

Permalänk: https://www.webforum.nu/p/2060010

## #4 — nitro2k01, 2007-12-09T23:18Z

Jaha, det kan finnas flera värden i samma rel-atribut. Om du vill testa efter endast ett av de kan du använda en regexp:

```
if(/(^|\s)nofollow($|\s)/.test(mmmmm.getAttribute("rel"))){

}
```

Permalänk: https://www.webforum.nu/p/2060020

## #5 — colione, 2007-12-09T23:27Z

IE är lite buggig vad gälelr getAttribute, därför är det, tyvärr bättre att använda:

*element*.rel

Permalänk: https://www.webforum.nu/p/2060022

## #6 — nitro2k01, 2007-12-09T23:31Z

Kan stämma... IE har ju en ful vana att göra lite allt möjligt uppercase. Men så har faktiskt IE historiskt sett aldrig haft stöd för HTML, utan den snarlika varianten MSHTML.

Permalänk: https://www.webforum.nu/p/2060024

## #7 — colione, 2007-12-09T23:33Z

Jag uppdaterade min kod medan nitro postade. :)

Permalänk: https://www.webforum.nu/p/2060025

## #8 — nitro2k01, 2007-12-09T23:36Z

Kollade du samtidigt upp om IE uppercaseade?

Permalänk: https://www.webforum.nu/p/2060026

## #9 — colione, 2007-12-09T23:42Z

Nej, jag är osäker på vilkensom IE uppercasear, antingen är det det man får ut eller så är det rel-attributet i sig. Har tyvärr inte IE på min mac. :)

Din kod kan mycket vl fungera felfritt i IE. Felet brukar komma nr man leker med setAttribute och man får för sig att sätta nånting med samma namn fast annan skiftläge.

Permalänk: https://www.webforum.nu/p/2060028

## #10 — Fuel, 2007-12-10T09:23Z

så här långt har jag kommit .. dock vill inte funktionen do_sub köras ?

```
function find_sub_menus()
{
	var submenu = document.getElementsByTagName("a");

	for (i = 0;i < submenu.length;i++)
	{
		if(submenu[i].rel.indexOf("submenu") != -1)
		{
			var attrib = submenu[i].rel.split(" ");
	
			if (attrib[2] != null)
			{
				var u = attrib[2];
		
			}
			submenu[i].onclick = do_sub(u);
			submenu[i].title = submenu[i].title + " - Open submenu";
		}
	}
}
```

Permalänk: https://www.webforum.nu/p/2060077

## #11 — nitro2k01, 2007-12-10T14:45Z

Raden **submenu*.onclick = do_sub(u);*** är åt skogen (Om inte funktionen do_sub skapar en ny funktion och returnerar.)
Dessutom så definierar du u lokalt inuti if-satsen, vilket gör att u inte är åtkomlig utanför den. 
Dessa två fel ihop gör att do_sub körs från find_sub_menus och (troligen) dessutom genererar ett fel pga att u är odefinierad.
och så är det inte null du ska leta efter, utan undefined-värden.

Jag skulle gissa på något sådant här:

Edit 2: Mitt fel. Jag glömde en viktig detalj.

```
function find_sub_menus()
{
	var submenu = document.getElementsByTagName("a");

	for (i = 0;i < submenu.length;i++)
	{
		if(submenu[[b][/b]i].rel.indexOf("submenu") != -1)
		{
			var attrib = submenu[[b][/b]i].rel.split(" ");
	
			if ('undefined' != [b]typeof[/b] attrib[2])
			{
				var u = attrib[2];
		
				submenu[[b][/b]i].onclick = function(){
					do_sub(u);
				}
				submenu[[b][/b]i].title = submenu[[b][/b]i].title + " - Open submenu";

			}
		}
	}
}
```

En annan sak här: Är du medveten om att attrib\[2\] pekar mot det tredje attributet i rel? Detta eftersom indexen räknas från 0. Om du bara har två attribut, t ex submenu och en kategori, så ska du byta ut tvåan mot en etta.
Sen finns det säkert ett bättre sätt att göra detta till att börja med, men det är sånt jag borde hyra ut mig själv som konsult för att fixa...

Edit: fixade till ett par saker i koden.

Permalänk: https://www.webforum.nu/p/2060150

## #12 — Fuel, 2007-12-10T16:04Z

ja nu är inte jag nån rocky på javascript men..

do_sub får rätt värde men det blir ändå undefined när jag kör den vi denna funktion .. kör jag do_sub via en onclick länk så fungerar den

```
function find_sub_menus()
{
	var submenu = document.getElementsByTagName("a");

	for (i = 0;i < submenu.length;i++)
	{
		if(submenu[i].rel.indexOf("submenu") != -1)
		{
			var attrib = submenu[i].rel.split(" ");
	
			if ('undefined' != attrib[1])
			{
				submenu[i].onclick = function()
				{
					edi_submenu(attrib[1]);
				}
				
				submenu[i].title = submenu[i].title + " - Open submenu";
			}
		}
	}
}

function edi_submenu(was)
{
	var ed_loading_image = "<img src=\"images/loading.gif\" alt=\"Loading...\" />";
	var ed_output_div = document.getElementById('edi-submenu');
	var ed_query_string = "?submenu=" + was;
	var ed_ajax_request;

	ed_output_div.innerHTML = ed_loading_image + " Requesting content...";
	
	try
	{
		ed_ajax_request = new XMLHttpRequest();
	}
	catch (e)
	{
		try
		{
			ed_ajax_request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				ed_ajax_request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e)
			{
				alert("Ellol: " + e.description);
				return false;
			}
		}
	}

	ed_ajax_request.onreadystatechange = function()
	{
		try
		{
			if(ed_ajax_request.readyState == 4)
			{
				if (ed_ajax_request.status == 200)
				{
					ed_output_div.innerHTML = ed_ajax_request.responseText;
				}
			}
		}
        catch(e)
        {
            alert("Ellol: " + e.description);
        }
	}

	ed_ajax_request.open("GET", "includes/edi-submenu.php" + ed_query_string, true);
	ed_ajax_request.send(null); 
}
```

Permalänk: https://www.webforum.nu/p/2060179

## #13 — nitro2k01, 2007-12-10T16:13Z

Oj, nu klickade jag redigera istället för citera. Men kolla mitt redigerade inlägg nu.

Permalänk: https://www.webforum.nu/p/2060182

## #14 — Fuel, 2007-12-10T16:24Z

nope

Permalänk: https://www.webforum.nu/p/2060184

---

Tråden på webben: https://www.webforum.nu/amne/javascript/167108-plocka-ur-rel
