Как правильно задать ID в создаваемом элементе ?
Здравствуйте, Господа!
На днях нарисовал вот такое чудовище: <script> a=[]; a[0]=100; a[1]=200; a[2]=300; a[3]=400; a[4]=500; a[5]=600; b=[]; b[0]='самолет'; b[1]='чайник'; b[2]='утюг'; b[3]='кефир'; b[4]='стол'; b[5]='арбалет'; h=[]; h[0]=h0; h[1]=h1; h[2]=h2; h[3]=h3; h[4]=h4; h[5]=h5; function fr(i){ var div=document.createElement('div'); div.innerHTML='Вы выбрали '+b[i]+' ( '+a[i]+' руб. ) ' +'<input type="text" id="h[i]" value="1" onKeyUp="pr(i)" size="5" />'+' шт.'; alert(h[i]); mid.appendChild (div); } </script> :lol: :lol: :lol: да, можно смеяться! при нажатии на кнопочку <input type="button" value="tratata" onclick="fr(4)"> вот здесь <div name="mid" id="mid"></div> появляется строка: "Вы выбрали стол ( 500 руб. ) (здесь еще input) шт.". Алерт в функции для того, чтобы узнать ID инпута, но он выдает undefined , т.е. я так понимаю ID так не задать. :agree: можно прекратить смеяться. Подскажите пжл. как правильно задать ID в создаваемом элементе , т.к. кнопок много и не хочется для каждой рисовать отдельную функцию. Заранее благодарен! |
<input id="4" type="button" value="tratata" onclick="fr()">
А в функции через this обращаться к id и далее по задаче...:-? |
h[0]=h0; = > h[0]='h0';
id="h[i]" = > id="'+h[i]+'" и того <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> </head> <body> <script> a=[]; a[0]=100; a[1]=200; a[2]=300; a[3]=400; a[4]=500; a[5]=600; b=[]; b[0]='самолет'; b[1]='чайник'; b[2]='утюг'; b[3]='кефир'; b[4]='стол'; b[5]='арбалет'; h=[]; h[0]='h0'; h[1]='h1'; h[2]='h2'; h[3]='h3'; h[4]='h4'; h[5]='h5'; function fr(i){ var div=document.createElement('div'); div.innerHTML='Вы выбрали '+b[i]+' ( '+a[i]+' руб. ) ' +'<input type="text" id="'+h[i]+'" value="1" onKeyUp="pr('+i+')" size="5" onclick="alert(this.id)" />'+' шт.'; document.getElementById('mid').appendChild (div); } </script> <input type="button" value="tratata" onclick="fr(4)"> <div name="mid" id="mid"></div> </body> </html> |
Вау....ожидал:"Да ты тупой" или "Что ты делаешь в JS"....
Спасибо.....отпишу о результатах |
можно я еще потуплю ?
function fr(i){ var div=document.createElement('div'); div.innerHTML='Вы выбрали '+b[i]+' ( '+a[i]+' руб. ) ' +'<input type="text" id="'+h[i]+'" value="1" onKeyUp="pr('+i+')" size="5" onclick="alert(this.id)" />'+' шт.'+' <span id="q1" >введите кол-во</span>'; document.getElementById('mid').appendChild (div); } задали ID, затем function pr(i){ var f=a[i]; var g=document.getElementById("'+h[i]+'").value; var p=f*g; document.getElementById('q1').innerHTML = p; } то происходит вот что: document.getElementById("'+h[i]+'") is null а если в input id="'+h[i]+'" поменять на id="homyakpoklonikvolta", ну или просто id="z" и g=document.getElementById("z").value; то скрипт работает, а это не совсем то (точнее совсем не то), что я хотел. Толкните пжл. в нужную сторону, подскажите , что я не так сделал? |
function pr(i){ var f=a[i]; var g=document.getElementById(h[i]).value; if(Number(g))document.getElementById('q1').innerHTML=f*Number(g); } |
Цитата:
А я этот вар. тоже пробовал, но h[i] у меня в кавычках был. Да, через НЕТ можно фотошоп изучить, а JS все же лучше хотя бы на курсах. Еще раз спасибо. |
Ну как-то так:
<html><head> </head> <body> <script> a=[]; a[0]=100; a[1]=200; a[2]=300; a[3]=400; a[4]=500; a[5]=600; b=[]; b[0]='самолет'; b[1]='чайник'; b[2]='утюг'; b[3]='кефир'; b[4]='стол'; b[5]='арбалет'; h=[]; h[0]='h0'; h[1]='h1'; h[2]='h2'; h[3]='h3'; h[4]='h4'; h[5]='h5'; g=[]; g[0]='g0'; g[1]='g1'; g[2]='g2'; g[3]='g3'; g[4]='g4'; g[5]='g5'; p=[]; p[0]='p0'; p[1]='p1'; p[2]='p2'; p[3]='p3'; p[4]='p4'; p[5]='p5'; function fr(i){ var div=document.createElement('div'); div.innerHTML='<strong>'+b[i]+'</strong>'+'<br />'+'цена: '+a[i]+' руб. ' +'<input type="text" id="'+h[i]+'" value="0" onKeyUp="pr('+i+')" size="5" />'+' шт.'+' <span id="'+p[i]+'" >введите кол-во</span>'; document.getElementById('mid').appendChild (div); } function pr(i){ var g=document.getElementById(h[i]).value; var f=a[i]; if(Number(g)) document.getElementById(p[i]).innerHTML=f*Number(g); } function obsh(){ var tb= document.getElementById('mid'); var spanArray = tb.getElementsByTagName('span'); var sum = 0; for (j = 0; j < spanArray.length; j++) { sum = sum + parseFloat(spanArray[j].innerHTML);} document.getElementById('total').innerHTML = sum; } </script> <input type="button" value="самолет" onclick="fr(0)"><br /> <input type="button" value="чайник" onclick="fr(1)"><br /> <input type="button" value="утюг" onclick="fr(2)"><br /> <input type="button" value="кефир" onclick="fr(3)"><br /> <input type="button" value="стол" onclick="fr(4)"><br /> <input type="button" value="арбалет" onclick="fr(5)"><br /> <form name="mainform" method="post" action="mail.php"> <div name="mid" id="mid"></div> <input type="button" value="итого:" onclick="obsh()"> <span id='total' name='total'></span> </form> </body> </html> корявенько, громоздко и даже возможно смешно, но немного CSS, HTML и фотошопа и интернет-магазин заработает (просто один малый за подобное попросил 10 килорублей) Рони, огромное мерси за помощь!!!! |
:write:
function obsh(){ var tb= document.getElementById('mid'); var spanArray = tb.getElementsByTagName('span'); var sum = 0; for (j = 0; j < spanArray.length; j++) { if(parseFloat(spanArray[j].innerHTML))sum += parseFloat(spanArray[j].innerHTML);} document.getElementById('total').innerHTML = sum; } |
не большая модернизация
function fr(i){ if (document.getElementById(h[i])) { alert('Этот товар уже в корзине');} else { var div=document.createElement('div'); div.innerHTML='<strong>'+b[i]+'</strong>'+'<br />'+'цена: '+a[i]+' руб. ' +'<input type="text" id="'+h[i]+'" value="0" onKeyUp="pr('+i+')" size="5" />'+' шт.'+' <span id="'+p[i]+'" >введите кол-во</span>'; document.getElementById('mid').appendChild (div); } } |
Часовой пояс GMT +3, время: 08:31. |