Avatar billede sjh Nybegynder
27. maj 2004 - 16:43 Der er 9 kommentarer og
1 løsning

Fjern px fra div border og set selectedIndex

Hvordan kan jeg fjerne "px" eller "pt" så jeg kan finde value, eller er der en smart måde at gøre det på??


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
  <head>
    <title>Border</title>
    <script LANGUAGE="JavaScript">
      <!--
      function Startup(){
        var strBorder = div_border.style.border.split(" ");
        alert(strBorder[1]);
        sel_form.sel_border.selectedIndex = strBorder[1];
      }
      function setSelect(value){
        div_border.style.border = "black " + value + "px solid";
      }
      //-->
    </script>
  </head>
  <body onLoad="Startup();">
    <div id="div_border" name="div_border" style="border: black 1px solid">Border test</div><br>
    <form name="sel_form">
      <select name="sel_border" onChange="setSelect(this[this.selectedIndex].value);">
        <option value="0">Ingen</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
        <option value="7">7</option>
        <option value="8">8</option>
        <option value="9">9</option>
      </select>
    </form>
  </body>
</html>
Avatar billede roenving Novice
27. maj 2004 - 17:01 #1
Du har også lavet det på en måde, så du er totalt afhængig af een bestemt browser på eet bestemt styresystem, men et par ganske små ændringer gør det crossbrowser:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
  <head>
    <title>Border</title>
    <script LANGUAGE="JavaScript">
      <!--
      function Startup(){
        var strBorder = document.getElementById('div_border').style.border.match(/\d+px/)[0].split("px")[0];
        //alert(strBorder);
        sel = document.sel_form.sel_border;
        for(i=0;sel.length>i;i++){
          if(strBorder==sel.options[i].value){
            sel.options[i].selected = true;
            break;
          }
        }
      }
      function setSelect(value){
        document.getElementById('div_border').style.border = "black " + value + "px solid";
      }
      //-->
    </script>
  </head>
  <body onLoad="Startup();">
    <div id="div_border" name="div_border" style="border: black 12px solid">Border test</div><br>
    <form name="sel_form">
      <select name="sel_border" onChange="setSelect(this.options[this.selectedIndex].value);">
        <option value="0">Ingen</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
        <option value="7">7</option>
        <option value="8">8</option>
        <option value="9">9</option>
        <option value="10">10</option>
        <option value="11">11</option>
        <option value="12">12</option>
        <option value="13">13</option>
        <option value="14">14</option>
        <option value="15">15</option>
        <option value="16">16</option>
      </select>
    </form>
  </body>
</html>
Avatar billede thesurfer Nybegynder
27. maj 2004 - 17:04 #2
..og metoden der blev brugt i spm'et, kræver at værdien ("1px") er placeret lige efter det andet mellemrum..
Avatar billede sjh Nybegynder
27. maj 2004 - 17:12 #3
jeg for fejl hvis jeg bruger "pt" -> ... style="border: black 12pt solid"
Avatar billede thesurfer Nybegynder
27. maj 2004 - 17:17 #4
Du skal huske at ændre "px" til "pt" alle steder:

.match(/\d+pt/)[0].split("pt")[0];
.border = "black " + value + "pt solid";
style="border: black 12pt solid">
Avatar billede sjh Nybegynder
27. maj 2004 - 17:24 #5
ha ha jeg kunne jo også bare gøre sådan:

      function Startup(){
        var strBorder = div_border.style.border.split(" ");
        //-- alert(strBorder[1]);
        var intSel = strBorder[1].substr(0, strBorder[1].length-2);
        sel_form.sel_border.selectedIndex = intSel;
      }

Da det bare skal virke i IE ;)
Avatar billede roenving Novice
27. maj 2004 - 17:24 #6
Nu er det jo ganske tåbeligt at bruge pt, hvis det er til skærm-brug, men da de to enheder tilfældigvis begge starter med et p, kan man jo:

var strBorder = document.getElementById('div_border').style.border.match(/\d+p[tx]/)[0].split("p")[0];
Avatar billede sjh Nybegynder
27. maj 2004 - 17:27 #7
smid et svar så for du point..
Avatar billede roenving Novice
27. maj 2004 - 17:38 #8
Velbekomme '-)
Avatar billede thesurfer Nybegynder
27. maj 2004 - 17:40 #9
hmm.. sjh, jeg kan se (top 10) at du er god til VB.. nogen forslag?: http://www.eksperten.dk/spm/499996
Avatar billede roenving Novice
28. maj 2004 - 12:55 #10
-- og 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