---
title: "Visa dölj med bilder funkar inte (problem med if i onclick)"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/163324-visa-dölj-med-bilder-funkar-inte-problem-med-if-i-onclick"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "wally_91"
published: "2007-08-09T18:47:11.000Z"
updated: "2007-08-10T20:32:22.000Z"
replies: 12
views: 627
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/163324-visa-dölj-med-bilder-funkar-inte-problem-med-if-i-onclick"
---

# Visa dölj med bilder funkar inte (problem med if i onclick)

## #1 — wally_91, 2007-08-09T18:47Z

Hej alla!

Jag har som sagt problem med en if-sats i en onclick.

När man trycker på den första bilden (+) ändras den till den andra bilden (-) men tvärtom funkar inte!

Använder följande kod:

```
<img src="images/plus.gif" alt="VISA/DÖLJ utökad användarinfo" 
onclick="if(this.src = 'images/plus.gif') this.src = 'images/minus.gif'; else this.src = 'images/plus.gif';" />
```

All hjälp uppskattas!

//wally_91

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

## #2 — @nders, 2007-08-09T19:07Z

Får du något javascriptfel?

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

## #3 — wally_91, 2007-08-09T19:09Z

Fx klagar inte och IE är tystare än vanligt.

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

## #4 — @nders, 2007-08-09T19:10Z

Har du en url till sidan eller möjlighet att lägga upp ett (o-)fungerande exempel?

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

## #5 — wally_91, 2007-08-09T19:21Z

Ja, varför inte?

<http://www.guida.nu/nytt/visa_alla/index.html>

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

## #6 — @nders, 2007-08-09T19:46Z

Släng fram en alert på this.src istället vid onclick - så får du se vad den innehåller. Min gissning är att den inte innehåller just *images/plus.gif* \- utan hela sökvägen.

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

## #7 — wally_91, 2007-08-09T19:55Z

Hur menar du?

Försökte själv men jag vet inte hur jag ska göra.

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

## #8 — coder, 2007-08-09T21:56Z

Har för mig **this.src** vill ha hela sökvägen. Vill man jobba med relativa länkar i koden får man addera en bas-url + relativ url.

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

## #9 — nitro2k01, 2007-08-09T22:26Z

Felet du gör ligger i if-satsen:

```
if(this.src = 'images/plus.gif')
```

Dels kan du inte använda ett enkelt = för jämförelse, dels så kan du inte jämföra this.src med den relative sökvägen, då this.srv innehåller den fulla sökvägen.
Det första problemet innebär att först körs **this.src = 'images/plus.gif'**, och this.src får värdet **'images/plus.gif'**. Sedan skickas uttryckets värde (**'images/plus.gif'**) till if-satsen. Denna tycker att värdet är sant eftersom det är en sträng som inte är tom. Sedan sätts **this.src** till **images/plus.gif**.
Om det bara vore för det felet så skulle du bara kunna byta ut = till ==. Dock så fanns det ju ett fel till. För det rekommenderar jag en annan approach för jämförelsen, nämligen en regexp. Jag rekommenderar följande kod:

```
<img src="images/plus.gif" alt="VISA/DÖLJ utökad användarinfo" 
onclick="if(/plus.gif$/.test(this.src)) this.src = 'images/minus.gif'; else this.src = 'images/plus.gif';" />
```

Den koden testar om src slutar med plus.gif. 
(. betyder något speciellt dock, punkten matchar nämligen vilket tecken som helst, så även en fil vid namn plusxgif eller plus3gif räknas som sant i if-satsen. Dock lär det inte ställa till med några problem för dig.)

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

## #10 — @nders, 2007-08-10T03:19Z

> **nitro2k01 skrev:**
>
> Dels kan du inte använda ett enkelt = för jämförelse

argh - att jag inte såg det!

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

## #11 — wally_91, 2007-08-10T07:27Z

> **nitro2k01 skrev:**
>
> Felet du gör ligger i if-satsen:
>
> ```
> if(this.src = 'images/plus.gif')
> ```
>
> 
> Dels kan du inte använda ett enkelt = för jämförelse, dels så kan du inte jämföra this.src med den relative sökvägen, då this.srv innehåller den fulla sökvägen.

Jag såg det också, uppdaterade dock aldrig mitt inlägg... Hmm undra varför?  :q 
I alla fall, om jag hade två = vid jämförelsen ändrades inget överhuvud taget. Det måste ha och göra med att src tar ut hela sökvägen. Ditt svar funkade i alla fall och jag är otroligt glad för det! TACK!  :birp 

TACK alla andra som hjälpte mig också!  :bire

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

## #12 — nitro2k01, 2007-08-10T09:54Z

> **wally_91 skrev:**
>
> I alla fall, om jag hade två = vid jämförelsen ändrades inget överhuvud taget. Det måste ha och göra med att src tar ut hela sökvägen.

Exakt. Läste du ens mitt inlägg, eller kopierade du bara koden?

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

## #13 — wally_91, 2007-08-10T20:32Z

> **nitro2k01 skrev:**
>
> Exakt. Läste du ens mitt inlägg, eller kopierade du bara koden?

Både och!   :D

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

---

Tråden på webben: https://www.webforum.nu/amne/javascript/163324-visa-dölj-med-bilder-funkar-inte-problem-med-if-i-onclick
