как мне узнать позицию элемента li (на какой из 5 элементов я нажал)
|
nerv_, таки ты так же не решил задачку автора... :) Ты не вывел порядковый номер элемента в списке. ;) Вот смотри, я немного поменял содержимое
<html> <head> <meta charset="utf-8"> <style type="text/css"> body { margin:0px; } </style> <script type="text/javascript"> function l(event) { var el = event.target || event.srcElement; alert(el.innerHTML); } </script> </head> <body> <ul onclick="l(event)"> <li>select *</li> <li>select *</li> <li>select *</li> <li>select *</li> <li>select *</li> </ul> </body> </html> И уже не понятно что ты там нашел... :) |
Цитата:
Если твой - вывести значение итерационной переменной и закончить таки цыкл. :) |
if (ul.getElementsByTagName('li')[xx]==this.???){...}
Я хотя бы в правильную сторону мыслю? |
nerv_ молодец уже в том, что делает полные тестовые примеры, ане как -=1100=- какие-то огрызки...
|
Цитата:
А вот синтаксис хромает на все четыре копыта... :) И над оптимизацией нужно работать... ;) |
Цитата:
Цитата:
Цитата:
|
у меня получилось так
<html> <head> <meta charset="utf-8"> <style type="text/css"> body { margin:0px; } </style> <script type="text/javascript"> function l(event) { var elLi = event.target || event.srcElement; var elUl = elLi.parentNode.childNodes; for(var j = 0, i = 0; j < elUl.length; j++) { if(elUl.item(j).nodeName === "LI") { i++; if(elUl.item(j) === elLi) break; } } alert(i); } </script> </head> <body> <ul onclick="l(event)"> <li>select *</li> <li>select *</li> <li>select *</li> <li>select *</li> <li>select *</li> </ul> </body> </html> |
Цитата:
<!DOCTYPE html> <html> <head> <!-- <script src="http://code.jquery.com/jquery-latest.js"></script> <link rel="stylesheet" type="text/css" href="tmp.css" /> --> <style type="text/css"> </style> <script type="text/javascript"> function l(Obj,event) { var elLi = event.target || event.srcElement; var o = Obj.getElementsByTagName('li'); for (var j = 0; j < o.length; j++) { if(o[j] === elLi) { alert(j+1); break; } } } </script> </head> <body> <ul onclick="l(this,event)"> <li>select *</li> <li>select *</li> <li>select *</li> <li>select *</li> <li>select *</li> </ul> </body> </html> |
ksa, спасибо! Понял, где можно было упростить. Почему-то эта запись
var elUl = elLi.parentNode.childNodes; в FF помимо Li влючала еще элементы (всего 11 для списка из 5). Сделал по Вашему примеру. <html> <head> <meta charset="utf-8"> <style type="text/css"> body { margin:0px; } </style> <script type="text/javascript"> function l(event) { var x = event.target || event.srcElement; var j = x.parentNode.getElementsByTagName('li'); for(var i = 0; i < j.length; i++) { if(j[i] === x) break; } alert(++i); } </script> </head> <body> <ul onclick="l(event)"> <li>select *</li> <li>select *</li> <li>select *</li> <li>select *</li> <li>select *</li> </ul> </body> </html> |
Часовой пояс GMT +3, время: 11:55. |