Avatar billede ahrensberg Nybegynder
24. august 2006 - 22:41 Der er 8 kommentarer og
1 løsning

Aflæs width på select

Hvordan kan jeg aflæse et select's width? F.eks. noget i retningen af onclick='alert(this.width);'??
Avatar billede cpufan Juniormester
24. august 2006 - 23:40 #1
sæt en <div id=minselect></div> så kan du aflæse divs width
Avatar billede mclemens Nybegynder
25. august 2006 - 00:45 #2
Hvad med det her:


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<style type="text/css">
div{width:300px;height:100px;background:red;border:20px solid #ff0;}
</style>

</head><body>
<div onclick="alert(this.offsetWidth);"></div>

<br><br>

<div onclick="alert(this.clientWidth);"></div>
</body></html>
Avatar billede mclemens Nybegynder
25. august 2006 - 00:50 #3
alert(this.offsetWidth);
alert(this.clientWidth);
.width virker jo kun hvis width attributten er brugt eller hvis det
er et element der normalt får det automatisk tilknyttet som f.eks. img:


<div onclick="alert(this.width);"></div>
<div width="300" onclick="alert(this.width);"></div>

<img src="http://www.eksperten.dk/img/elogo.png" onclick="alert(this.width);">
<img width="300" src="http://www.eksperten.dk/img/elogo.png" onclick="alert(this.width);">




åh joh ... svaret ... :o)
<select onclick="alert(this.offsetWidth);">
<option>ttttttttttttttttt</option>
</select>

<select onclick="alert(this.clientWidth);">
<option>ttttttttttttttttt</option>
</select>

<select onclick="alert(this.offsetWidth);">
<option>ttttttttttttttaaaaaaaaaaaaaaaaaattt</option>
</select>

<select onclick="alert(this.clientWidth);">
<option>ttttttttttttttaaaaaaaaaaaaaaaaaattt</option>
</select>
Avatar billede mclemens Nybegynder
25. august 2006 - 00:59 #4
og lige et ekstra eksempel via en function
og fangning af select'en via name...



<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">
function widthsel(tn){
tn=document.getElementsByName(tn)[0];
alert(tn.offsetWidth);
}
</script>

</head><body>


<select name="sel1">
<option>ttttttttttttttttt</option>
</select><br><b onclick="widthsel('sel1');">Find select 1's width</b><br>

<select name="sel2">
<option>ttttttttttttttaaaaaaaaaaaaaaaaaattt</option>
</select>
<br>
<b onclick="widthsel('sel2');">Find select 2's width</b>

</body></html>
Avatar billede mclemens Nybegynder
25. august 2006 - 01:00 #5
... den kan selvfølgelig også fanges med tn=document.getElementById(tn);
og så et id på select'en der matcher ... men jeg formoder at det var det
med offsetWidth og clientWidth du tænkte på :o)
Avatar billede ahrensberg Nybegynder
25. august 2006 - 12:44 #6
mcclemens:> Det virker perfekt! :o) Takker...

cpufan:> Har ikke prøvet dit, men det virker sikkert også, så smid et svar.
Avatar billede mclemens Nybegynder
25. august 2006 - 12:57 #7
Velbekom :)


((( P.s.: cpu fan's virker hvis du gør sådan her:
<div id="minselect" onclick='alert(this.width); width="20"></div>

... men det gør den også uden id - id er ikke en foud sætning

<div onclick='alert(this.width); width="20"></div>

... det er ikke id der er fejlen med funktionen ...
width der skulle rettes til offsetWidth eller clientWidth )))
Avatar billede ahrensberg Nybegynder
20. september 2006 - 08:21 #8
Opgave lukket. Takker til mclemens.
Avatar billede mclemens Nybegynder
20. september 2006 - 10:13 #9
Tak for point :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester