<html> <head> </head> <body> <div id="a0">1</div> <div id="a1">2</div> <div id="a2">3</div> <div id="a3">4</div> <div id="a4">5</div> <div id="a5">6</div> <script> divs=document.querySelectorAll("div") f=function () { var n=(+this.id[1]) ;[].forEach.call(divs, function(div){div.style.background=(+div.id[1]<=n) ? "blue" : ""}) } ;[].forEach.call(divs, function(div){div.onclick=f}) </script> </body> </html> |
Цитата:
|
Цитата:
вот вам ещё вариант через замыкание, чтоб не доставать данные из id (количество строк любое наличие id необязательно) <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> <div>6</div> <div>7</div> <div>8</div> <div>9</div> <div>10</div> <div>11</div> <div>12</div> <div>13</div> <div>14</div> <div>15</div> <script> var d = document.querySelectorAll("div"), f = function(a) { return function() { [].forEach.call(d, function(b, c) { b.style.background = a >= c ? "blue" : "" }) } }; [].forEach.call(d, function(a, b) { a.onclick = f(b) }); </script> </body> </html> |
Цитата:
В итоге у меня вышло вот так <!DOCTYPE HTML> <html> <head> <title></title> <meta charset="utf-8"> <style type="text/css"> header{ width: 225px; height: 17px; border: 1px solid black; } header>div{width: 13px; height: 15px; border:1px solid black; background-color:white; margin-left:0px; float:left; } </style> <script> function test() { var divs; for (var j = 0; j < 15; j++) { divs = document.getElementById('a' + j); divs.onclick = function() { var color = "linear-gradient(to right, blue, blue)" for (var j = 0; j < 15; j++) { divs = document.getElementById('a' + j); divs.style.backgroundImage = divs == this ? "linear-gradient(to right, blue 50%, white 50%)" : color; if (divs == this) color = ''; } } } } </script> </head> <body onload="test()"> <header> <div id="a0">10</div> <div id="a1">11</div> <div id="a2">12</div> <div id="a3">13</div> <div id="a4">14</div> <div id="a5">15</div> <div id="a6">16</div> <div id="a7">17</div> <div id="a8">18</div> <div id="a9">19</div> <div id="a10">20</div> <div id="a11">21</div> <div id="a12">22</div> <div id="a13">23</div> <div id="a14">24</div> </header> </body> </html> Теперь думаю как вынести текст из div'ов над ними и по клику на текст красилась ячейка |
Zyuzka,
не копируйте код в своё сообщениее целиком это засоряет просмотр. Цитата:
|
Цитата:
Пример: <header> <div class="time">10</div> <div class="time">11</div> <div class="time">12</div> <div class="time">13</div> <div class="time">14</div> <div class="time">15</div> <div id="a0"></div> <div id="a1"></div> <div id="a2"></div> <div id="a3"></div> <div id="a4"></div> <div id="a5"></div> </header> |
Zyuzka,
не осилил ))) сделайте лучше пример того что хотите получить в результате |
Цитата:
function test() { var divs; for (var j = 0; j < 15; j++) { divs = document.getElementById('a' + j); divs.onclick = function () { var color = "linear-gradient(to right, blue, blue)" for (var j = 0; j < 15; j++) { divs = document.getElementById('a' + j); divs.style.backgroundImage = divs == this ? "linear-gradient(to right, blue 50%, white 50%)" : color; if (divs == this) color = ''; } } } } <div id="h0">10</div> <div id="h1">11</div> <div id="h2">12</div> <div id="h3">13</div> <div id="a0"></div> <div id="a1"></div> <div id="a2"></div> <div id="a3"></div> Сейчас bgColor срабатывает для div id(a+j) по клику на div id(a+j). Нужно срабатывание для div id(a+j) по клику на div id(h+j). При этом bgColor div c id(h+j) не должен меняться |
up теме:(
|
Zyuzka,
либо я вас не понял либо вам нужно заменить в 4 строке a на h |
Часовой пояс GMT +3, время: 16:12. |