новичок Posted June 10, 2007 Report Share Posted June 10, 2007 Подскажите пожалуйста очень-очень надо!!! Имеется меню Select и пустой . Из меню в можно добавлять элементы (1.а; 2b; 3.с). Как обратиться к , чтобы вычислить сумму этих элементов??? Заранее благодарен за ответ. Link to comment Share on other sites More sharing options...
0 Дядя Саша Posted June 10, 2007 Report Share Posted June 10, 2007 Ничего не понял, каким образом туда добавляются элементы, в каком виде? Что такое вот это - 1.а; 2b; 3.с? Или это поздно или я не отошел от вчерашнего, но я себе сейчас голову поломаю.К диву document.getElementById("DIVid").что такое? Как эти элементы выглядят хоть? Просто текст или там три разных поля? Если три поля то возможно:value1 = document.getElementById("field1").valuevalue2 = document.getElementById("field2").valuevalue3 = document.getElementById("field3").valuesum = value1 + value2 + value3А вообще, хоть я и развиваю свои экстрасенсорные способности, я просто не понимаю ничего Link to comment Share on other sites More sharing options...
0 Yarik Voronov Posted June 11, 2007 Report Share Posted June 11, 2007 из http://forum.htmlbook.ru/index.php?showtopic=4334Как обратиться к , чтобы вычислить сумму добавленых элементов. (обращение должно быть к DIV, а не к SELECT)??????Через childNodes елемента div. Что-то вроде этого:function divCountNestedElements(tName, divId) // tName='select', divId='dvput';{ var div = gebi(divId), e=div.childNodes.length, eCount=0; while(e--){ var child = div.childNodes[e].tagName && div.childNodes[e].tagName.toLowerCase(); if (child==tName) eCount++; } return eCount;}З.Ы. код в порядок приведи. читать его не удобно Link to comment Share on other sites More sharing options...
0 новичок Posted June 11, 2007 Author Report Share Posted June 11, 2007 Не пойму как привязать Ваш код к моему. Ниже выкладываю код с дописаным скриптом для вычислений. Но в нем обращение происходит к SELECT, а не к DIV. Посмотрите пожалуйста.<HTML><HEAD><SCRIPT language=JavaScript >var nodes = 4;P = new Array(nodes)for (i=0; i < nodes; i++) { P[i] = new Array(nodes) for (j=0; j < nodes; j++) { P[i][j] = "["+i+","+j+"]" }}D = new Array(nodes)for (i=0; i < nodes; i++) { D[i] = new Array(nodes) for (j=0; j < nodes; j++) { D[i][j] = "0"; }}//Array for path namesvar Name = new Array(nodes);Name[0] = "";Name[1] = "a";Name[2] = "g";Name[3] = "c";P[0][0]="0"P[1][0]="1,0"P[2][0]="2,0"P[3][0]="3,0"P[0][1]="0,1"P[1][1]="1,1"P[2][1]="2,1"P[3][1]="3,1"P[0][2]="0,2"P[1][2]="1,2"P[2][2]="2"P[3][2]="3,2"P[0][3]="0,3"P[1][3]="1,3"P[2][3]="2,3"P[3][3]="3"D[0][1]="0"D[1][1]="1"D[2][1]="8"D[3][1]="7"D[0][2]="0"D[1][2]="8"D[2][2]="2"D[3][2]="9"D[0][3]="0"D[1][3]="7"D[2][3]="9"D[3][3]="3"D[0][0]="0"D[1][0]="0"D[2][0]="0"D[3][0]="0"function calc(form) { var sel_punkt_iz=form.sel_punkt_iz.options[form.sel_punkt_iz.selectedIndex].value; var sel_punkt_v=form.sel_punkt_v.options[form.sel_punkt_v.selectedIndex].value; var DD = 0; var v = new Array(); if (P[sel_punkt_iz][sel_punkt_v] != 0) { v = P[sel_punkt_iz][sel_punkt_v]; v = v.split(",") for (i = 0; i < (v.length - 1); i++) { DD+= Number(D[v[i]][v[i+1]]); } } form.T.value = DD;}</SCRIPT><SCRIPT language=JavaScript>var put=new Array();var punkt_iz,punkt_v;function gebi(name){return document.getElementById(name);};function on_load(){punkt_iz=gebi("sel_punkt_iz");punkt_v=gebi("sel_punkt_v");};function sel_txt(sel){return sel.options[sel.selectedIndex].text;};function refresh_put(){var dvput=gebi("dvput"); var b="<table width=100% height=0% cellpadding=0 cellspacing=0 border=0>"; {b+="<tr><td width=100% class='txt' title='"+punkt_iz+"'>1. "+sel_txt(punkt_iz)+"</td><td colspan=3> </td><tr>";}; for(var i=0;i<put.length;i++) {b+="<tr><td width=100% class='txt' title='"+put[i][2]+"'>"+(i+2)+". "+put[i][1]+"</td><td>";b+=" </td><tr>";}; {b+="<tr><td width=100% class='txt' title='"+punkt_v+"'>"+(put.length+2)+". "+sel_txt(punkt_v)+"</td><td colspan=3> </td><tr>";}; b+="</table>";dvput.innerHTML=b;};</SCRIPT></HEAD><BODY > <FORM id=frm name="frm"> <SELECT class=inp id=sel_punkt_iz style="WIDTH: 200px" onchange=refresh_put() name=sel_punkt_iz> <OPTION value=0><OPTION value=1>a<OPTION value=2>g<OPTION value=3 >c</OPTION></SELECT> <SELECT class=inp id=sel_punkt_v style="WIDTH: 200px" onchange=refresh_put() name=sel_punkt_v> <OPTION value=0><OPTION value=1>a<OPTION value=2>g<OPTION value=3 >c</OPTION></SELECT> <DIV class=dvput id=dvput name="dvput"></DIV></BR></BR></BR></BR><INPUT class=txt1 type=text size=10 value="" name=T></BR></BR></BR></BR><INPUT onclick=calc(this.form) type=button value="Расчет " ></FORM> <SCRIPT language=JavaScript>on_load();</SCRIPT></BODY></HTML> Link to comment Share on other sites More sharing options...
0 Yarik Voronov Posted June 12, 2007 Report Share Posted June 12, 2007 2 новичок, твой код конечно супер......... токмо поясни для чего он? и зачем тебе обращение к значениям переданным в div? чем не устраивает select?Если ну очень надо вытащить значения из див...(вернее из таблицы)function divReturnNestedValues(tName, divId) // tName='td', divId='dvput';{ var div = gebi(divId).getElementsByTagName(tName), e=div.length, eCount=array(), i=0; for(;i<e;i+=2) eCount.push(div[i].innerHTML); return eCount; //alert (eCount);}Ессно дело на выходе будет информация типа String, причем формата ['1. a','2. g'] и т.п. Так что надо думать о другом варианте, если не хочешь заморачиваться с работой над текстовыми переменными. А другие варианты конечно же есть. Link to comment Share on other sites More sharing options...
0 Maslakoff Posted June 12, 2007 Report Share Posted June 12, 2007 А ещ? я добавлю: ВЫУЧИТЕ JSON!!!... Мама моя родная.... я года два тому назад так массивы описывал... теперь мне стыдно.... :-[ Link to comment Share on other sites More sharing options...
Question
новичок
Подскажите пожалуйста очень-очень надо!!! Имеется меню Select и пустой
Link to comment
Share on other sites
5 answers to this question
Recommended Posts