webForumDet fria alternativet

Dölja delar av tabell?

8 svar · 322 visningar · startad av Jesper T

Jesper TMedlem sedan nov. 20017 058 inlägg
#1

Går det att på någe vis dölja delar av en tabell, i.s.f. hur?
ex. det fetmarkerade kan togglas hide/block.

<table>
    <tr>
        <td>1</td>
        <td>2</td>
        <td>3</td>
    </tr>
    [b]<tr>
        <td>1</td>
        <td>2</td>
        <td>3</td>
    </tr>
    <tr>
        <td>1</td>
        <td>2</td>
        <td>3</td>
    </tr>[/b]
</table>
Jesper TMedlem sedan nov. 20017 058 inlägg
#2

En "<tr>" är ju inge problem men jag får inte till det om det är fler.

Jesper TMedlem sedan nov. 20017 058 inlägg
#3

Det kanske finns smartare sätt, men detta funkar i a f.

 <script type="text/javascript">
function showhide(){
    var elm,
	i = 1;
    while (elm = document.getElementById("invoiceaddr_" + i++))
	elm.style.display=(elm.style.display=="block")?"none":"block";
}
</script>

<style>
.hide{ display:none }
</style>

<table width="500" border="0" cellspacing="0" cellpadding="3">
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr class="hide" id="invoiceaddr_1">
    <td>1</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr class="hide" id="invoiceaddr_2">
    <td>2</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
Jesper TMedlem sedan nov. 20017 058 inlägg
#4

Nix, föresten det funkar inte.
Allt Innehåll "trillar in" till den vänstra td-n.
Vad är fel?

dectgapMedlem sedan sep. 20021 542 inlägg
#5

Egentligen vill du sätta display till "table-row", men eftersom det inte fungerar i IE får man dra till med "block" där.
Som tur är ger IE ett fel om vi försöker sätta display till "table-row" - ett fel som vi kan fånga upp genom ett try-catch-block:

<script type="text/javascript">
function showhide(){
    var elm,
	i = 1;
    while (elm = document.getElementById("invoiceaddr_" + i++))
    	try {
			elm.style.display=(elm.style.display=="table-row")?"none":"table-row";
		} catch(e) {
			elm.style.display=(elm.style.display=="block")?"none":"block";
		}
}
</script>
Jesper TMedlem sedan nov. 20017 058 inlägg
#6

Oooo, tack kompis.

Jesper TMedlem sedan nov. 20017 058 inlägg
#7

En liten avstickare:
Denna funkar bara i I.E. finns det någon workaround?

document.getElementById("send").disabled=(document.getElementById("v1").checked)? false : true;

"send" är en button.
"v1" är en checkbox.

dectgapMedlem sedan sep. 20021 542 inlägg
#8

Eftersom checked är av typen Boolean räcker det med

document.getElementById("send").disabled= !document.getElementById("v1").checked

Är "send" id eller namn på knappen? Om det är namnet (attributet name) så låter IE ändå sig hitta knappen via getElementById().

Visa tillhörande HTML-kod om du fortfarande har problem.

Jesper TMedlem sedan nov. 20017 058 inlägg
#9

Det var både id och namn. Jag fick inte till det med getElementById ändå.

Däremot så funkade det fint med:

document.shop.subm.disabled = !document.shop.v1.checked;
122 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
120 ms — hämta tråd, inlägg och bilagor (db)