Как реализовать onclick на ячейках таблицы
Как реализовать onclick на ячейках таблицы? Чтобы бралась та ячейка на которую кликнули. И почему alert срабатывает сразу: this.onclick=alert(2);
|
Что-то вроде того:
<td onClick="window.alert('Бла-Бла-Бла...');">Бла-Бла-Бла...</td> <script language="JavaScript" event="onmouseup" for="id_ячейки"> alert('Бла-Бла-Бла...'); </SCRIPT> <td> <a href="javascript:alert('Бла-Бла-Бла...')">Бла-Бла-Бла...</a> </td> |
ну или с участием jquery:
<td>Бла-Бла-Бла</td> <script> $("td").click(function(){ alert($(this).text()); // Бла-Бла-Бла }); либо alert($(this).html()); //если в ячейке не просто текст покажет содержимое любой ячейки </script> |
Да, только в последнем случае с использованием jquery есть неоспоримый +, если у вас td>10 вешать на каждую ячейку событие может оказаться накладным.
jquery, в данном случае конечно удобнее, он дает событие по тегу. (c) Кэп А у меня вот другая проблема, как сделать то же самое, что предложил Le-mark43, но без использования jquery/ |
Цитата:
Приведите пример и описание по сути проблемы, а там уже можно будет смотреть, что с этим делать. |
Цитата:
Вот у нас таблица с 10 ячейками - как узнать на какую ячейку из этой таблицы произведен клик. В jquery на данный вопрос ответили выше, но вот как сделать нативным js кодом, никто не сказал. P.S. Цитата:
|
Цитата:
<table border=1> <tr> <th>1</th> <th>2</th> </tr> </table> <script> function f() { alert(this.innerHTML) } var a = document.getElementsByTagName('th'); for (i=0; i<a.length; i++) { a[i].onclick = f } </script> |
Цитата:
слушатель на всю таблицу вешать, а не на каждую ячейку.и в колбеке определять соответствие... |
Цитата:
|
bes,
тебе сюда- http://learn.javascript.ru/introduction-browser-events чтоб не было подобных фраз Цитата:
|
last-art, в jquery для таких вещей имеется live.
Если без jquery, то в target или srcElement будет ссылка на нужный элемент |
Цитата:
Цитата:
Цитата:
Цитата:
|
dmitriymar, вот micscr дал нормальный ответ, а ты наверное хотел дать другую ссылку http://learn.javascript.ru/obtaining-event-object
|
bes, там уже несколько авторов сменилось.
Смысл в том, чтобы не на каждый элемент(коих много раз это td) вешать обработчик, а на их родителя. Просто события в js всплывают и на родителе их можно поймать. |
Цитата:
|
Здравствуйте.Есть такой html и мой js.
Помогите пожалуйста: 1. Имитировать клик на форме; 2. Вытащить информацию об объекте внимания, например хутор. Пока удается вытащить только название этого самого объекта и вознаграждение, например: Р******* 0,0533 0,1066 <table class="register statistics"> <tr> <th class="text-center" width="80">Казна</th> </tr> <tr class=""><td class="withTip" title="Хутор" width="43"> <span class="sp"></span> </td> <td>Р*******</td> <td class="text-center"> <span class="color-green">0,0533</span> </td> <td class="text-center"> <span id="treasury_600686823" class="color-gray">0,1066</span> </td> <td><form method="POST" action="/stash/attack"> <input type="submit" value="Одолеть" class="btn" /> </form></td></tr> <tr class="zebra"> <td class="withTip" title="Деревня" width="43"> <span class="sp"></span> </td> </table $('table.register tr').each(function(key, elem){ var td = $(this).html(); alert($(elem).text()); if (key == 1){ //$('.btn').click(); return false; } }); Нашел ответ на второй вопрос пока: alert($(td).attr('title')); Выводит "хутор" Отчасти нашел ответ и на первый вопрос, но почему-то клик не осуществляется. В чем дело? :) $(td).find("input[type='submit']").click(); |
Часовой пояс GMT +3, время: 03:33. |