webForumDet fria alternativet

Dynamiska div namn

3 svar · 490 visningar · startad av Mattias Nordin

Mattias NordinMedlem sedan dec. 20051 056 inlägg
#1

Hej,

Hur gör man för att referera till ett div namn som är dynamiskt uppbyggt?

Följande kod använder jag för att tända och släcka lite inputfält brevid checkboxar. Fungerar bra i internet explorer men bara med vissa doctypes.

Finns det något "riktigt" sätt att göra detta på som fungerar i alla moderna webläsare?

	function funShowHideField(iFieldName){
		alert("In function >> '" +iFieldName +"'")
		//remove _check
		iTargetFieldName = iFieldName.substring(0, iFieldName.length-6)
		//add div
		iTargetFieldName = iTargetFieldName +"Div"
		//test if checkbox is checked
		objCheckboxDiv = document.getElementById(iFieldName)
		//If checked show div
		if(objCheckboxDiv.checked == true){
	  	
			document.getElementById(iTargetFieldName).style.visibility = 'visible';

		} else {
		
			document.getElementById(iTargetFieldName).style.visibility = 'hidden';
		
		}

:stud

Mattias NordinMedlem sedan dec. 20051 056 inlägg
#2

Nedan fungerar ej med följande doctype:
<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

document.getElementById(iFieldName)

Men följande fungerar naturligtvis... vill dock använda funktionen i min tidigare post.

document.getElementById("rMediaFormatDbId_check")
Mattias NordinMedlem sedan dec. 20051 056 inlägg
#3

Inga förslag?

voigtann1Medlem sedan juni 20019 519 inlägg
#4

När anropar du funShowHideField()? Finns det divarna ens i DOM trädet?

<html>
	<head>
	<script type="text/javascript">
	function funShowHideField(iFieldName){
		//remove _check
		iTargetFieldName = iFieldName.substring(0, iFieldName.length-6)
		//add div
		iTargetFieldName = iTargetFieldName +"Div"
		//test if checkbox is checked
		objCheckboxDiv = document.getElementById(iFieldName)
		//If checked show div
		document.getElementById(iTargetFieldName).style.visibility = (objCheckboxDiv.checked == true?'visible':'hidden');
	}
	</script>
	
	</head>
	<body>
		<input type="checkbox" id="inptest-checkb" onclick="funShowHideField(this.id)" />
		
		<div id="inptest-Div">
			aa
		</div>
	
	</body>
</html>

fungera för mig, skrev om din JS kod lite, men den gör samma sak som din kod.

125 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)