webForumDet fria alternativet

Lägga till class på body beroende på annan class

JavaScript

11 svar · 528 visningar · startad av ramo_and

Medlem sedan nov. 2010214 inlägg
Frågan#1

Jag vill kunna lägga till olika body classer beroende på vilken klass mitt "contentarea" har. Vilken klass det har styrs av innehållet.

Ex:

Fall 1:
<table id="contentArea" class="content1">
  Innehåll
</table>

Fall 2:
<table id="contentArea" class="content2">
  Innehåll
</table>

Det jag vill göra är då att lägga till en class till body:n när tabellen har classen content1 och ett annat när den har classen content2.

Jag vet hur man gör för att lägga till klasser med jQuery, det jag inte vet är hur man gör om vill att body:n ska få en class beroende på vilken klass "contentArea" har..

Medlem sedan juni 20019 519 inlägg
#2

Hämta elementet med en CSS selector och kollar om den innehåller något DOM objekt:

if($("#contentArea").hasClass("content1")){
//#contentArea has a cssClass of content1
}

eller om du bara skall lägga samma cssKlass på bodyn som din #contentArea har:

$("body").addClass($("#contentArea").attr("class"));

(ej testat).

Medlem sedan nov. 2010214 inlägg
#3
<script type="text/javascript">
$(function(){
  if($('#contentField').hasClass('.twscontentarticlepageingroup672324'){
  $('body').addClass('living');
});

});
</script>

Jag gjorde ett eget försök med detta funkar inte på sidan.. Jag har kodat fel antar jag?

Medlem sedan juni 20019 519 inlägg
#4

du skriver fel, du saknar en ) i din if fråga

<script type="text/javascript">
$(function( ){
	if($('#contentField').hasClass('.twscontentarticlepageingroup672324')[red])[/red]{
		$('body').addClass('living');
	});
});
</script>
Medlem sedan nov. 2010214 inlägg
#5

Aah klantigt av mig! Tyvärr så funkar det inte ändå.. nåt annat som kan vara fel?

Det är ett td-element som alltid har id contentField och så ändras dess klasser beroende på vilket innehåll som visas. Behöver jag lägga upp mer html-struktur?

Medlem sedan juni 20019 519 inlägg
#6

hasClass skall vara en sträng, inte en CSS selektor, ta bort punkten i strängen. Då den letar efter CSS klass och inte kolla om elementet har en specifikt css-Selector.

Medlem sedan nov. 2010214 inlägg
#7

Aah jag gjorde det men de funka ändå inte.. :( Nåt annat som kan va fel...?

Medlem sedan juni 20019 519 inlägg
#8

fungera för mig: http://jsbin.com/oceha3/

Du har lagt in ); på lite väl många platser

Medlem sedan nov. 2010214 inlägg
#9

Jag tog bort den ); som du hade tagit bort och då funka det! Tackar! :)

Medlem sedan nov. 2010214 inlägg
#10

En snabb fråga till, hur gör man om man vill skriva att body:n ska få en särskild klass om #contentField har t ex "klass1" ELLER "klass2"?

Medlem sedan juni 20019 519 inlägg
#11

Ja, det gör du nu ju redan, bara att lägga in else if

Medlem sedan nov. 2010214 inlägg
#12

Aah just de! Tänkte att de va nåt sånt. Det funkar fint, tack så mycket!

274 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
136 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
136 ms — ändringar (db)