как мне узнать позицию элемента 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, время: 14:59. |