Kodexempel nedan... Använder inte innerHTML.
Tydligen var min kod för lång, så ja fick dela upp den i 2 postningar...
Det väsentliga är stycket med följande kod:
var v_sektioner = getElementsByClassName("sektion");
alert(v_sektioner.length);
Det är inget fel på getElementByClassName-funktionen. Jag har testat med andra metoder för att hämta in elementen. Bl.a. med ramverket Ext JS.
Som sagt, funkar bra i FF, Safari och IE8, men inte i IE7.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sv">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title></title>
<script type="text/javascript">
/* <![CDATA[ */
// test-data
var v_blankettexter = {
"sektioner": [{
"nummer": "0",
"namn": "Inledning",
"texter": [{
"nummer": "0",
"text": "Det här är sektion 0 blankettext 0 <br/>[fritext]",
"obligatorisk": "nej",
"fritext": "ja"
}, {
"nummer": "1",
"text": "Det här är sektion 0 blankettext 1",
"obligatorisk": "nej",
"fritext": "nej"
}, {
"nummer": "2",
"text": "Det här är sektion 0 blankettext 2",
"obligatorisk": "nej",
"fritext": "nej"
}]
}, {
"nummer": "1",
"namn": "Beslut",
"texter": [{
"nummer": "0",
"text": "Det här är sektion 1 blankettext 0",
"obligatorisk": "ja",
"fritext": "nej"
}, {
"nummer": "1",
"text": "Det här är sektion 1 blankettext 1",
"obligatorisk": "ja",
"fritext": "nej"
}, {
"nummer": "2",
"text": "Det här är sektion 1 blankettext 2",
"obligatorisk": "nej",
"fritext": "nej"
}]
}, {
"nummer": "2",
"namn": "Motivering",
"texter": [{
"nummer": "0",
"text": "Det här är sektion 2 blankettext 0",
"obligatorisk": "ja",
"fritext": "nej"
}, {
"nummer": "1",
"text": "Det här är sektion 2 blankettext 1",
"obligatorisk": "nej",
"fritext": "nej"
}, {
"nummer": "2",
"text": "Det här är sektion 2 blankettext 2",
"obligatorisk": "ja",
"fritext": "nej"
}]
}]
};
function infogaObligatoriskaBlankettexter(){
for (var i = 0; i < v_blankettexter.sektioner.length; i++) {
for (var j = 0; j < v_blankettexter.sektioner[i].texter.length; j++) {
if (v_blankettexter.sektioner[i].texter[j].obligatorisk == "ja") {
//console.log("sätt in -> index:" + i + " index:" + j + " - nummer:" + v_blankettexter.sektioner[i].nummer + " nummer:" + v_blankettexter.sektioner[i].texter[j].nummer);
infogaBlankettext(i, j);
//console.log("insatt -> index:" + i + " index:" + j + " - nummer:" + v_blankettexter.sektioner[i].nummer + " nummer:" + v_blankettexter.sektioner[i].texter[j].nummer);
}
}
}
}