Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.09.2013, 06:47
Профессор
Отправить личное сообщение для Гробовщик Посмотреть профиль Найти все сообщения от Гробовщик
 
Регистрация: 10.03.2013
Сообщений: 169

Определить путь до ячейки
Доброго времени суток. Столкнулся с задачей которую пока что не в состоянии осилить самостоятельно, а именно что бы скрипт мог показывать мне человеческий путь до того элемента по которому я щёлкнул.
Пример исходника:
function operation(){
          alert(this.innerHTML);
}

<table id='table' border="1">
<tr>
<td colspan="22" style="background: #DCDCDC; "> Раздел 1 </td>
</tr>
<tr style="background: #FFFACD;">
<td>1</td>
<td>ТЕР18-03-001-02<img src="images/skrep.jpg "alt="альтернативный текст"></img></td>
<td>Установка радиаторов: стальных</td>
<td>чел. час</td>
<td colspan="2">8.15</td>
<td>10 854.54</td>
<td>7 593.04</td>
<td>1 695.26</td>
<td>181.14</td>
<td>1 566.24</td>
<td>88 464.50</td>
<td>61 883.37</td>
<td>13 816.37</td>
<td>1 476.29</td>
<td>12 764.85</td>
<td>65,6</td>
<td>534,64</td>
<td>3,13</td>
<td>25,51</td>
<td><span OnClick="operation()">ТЫЦ!!!</span></td>
<td>ТЕР18-03-001-02</td>
</tr>
<tr style="background: #BBFFFF">
<td><span OnClick="operation()">ТЫЦ!!!</span></td> 
<td>1-3-4</td>      
<td>Затраты труда рабочих(ср 3,4)</td>          
<td>чел.час</td>                        
<td>65.6</td>                   
<td>534.64</td> 
<td>6.16</td>                 
<td>6.16</td>                  
<td>&nbsp;&nbsp;</td>                
<td>&nbsp;&nbsp;</td>            
<td>&nbsp;&nbsp;</td> 
<td>3 293.38</td>
<td>3 293.38</td>
<td>&nbsp;&nbsp;</td>
<td>&nbsp;&nbsp;</td>
<td>&nbsp;&nbsp;</td>
<td><span OnClick="operation()">ТЫЦ!!!</span></td>
<td>&nbsp;&nbsp;</td>
<td>&nbsp;&nbsp;</td>
<td>&nbsp;&nbsp;</td>
<td>&nbsp;&nbsp;</td>
<td>&nbsp;&nbsp;</td> 
</tr>
<tr style="background: #BBFFFF;"> 
<td>&nbsp;&nbsp;</td>
<td>2</td>
<td>Затраты труда машинистов</td>
<td>чел.час</td>
<td>3.13</td>
<td>25.51</td>                     
<td>0.00</td>
<td>&nbsp;&nbsp;</td>
<td>&nbsp;&nbsp;</td>
<td>0.00</td>
<td><span OnClick="operation()">ТЫЦ!!!</span></td>
<td>0.00</td>
<td>&nbsp;&nbsp;</td>
<td>&nbsp;&nbsp;</td>
<td>0.00</td>
<td>&nbsp;&nbsp;</td> 
<td>&nbsp;&nbsp;</td>
<td>&nbsp;&nbsp;</td>
<td>&nbsp;&nbsp;</td>
<td>&nbsp;&nbsp;</td>
<td>&nbsp;&nbsp;</td>
<td>&nbsp;&nbsp;</td>
</tr>

т.е. когда мы жмём ТЫЦ!!! js(или jquery) должен быдет показать где конкретно находиться данный ТЫЦ!!!. Для чего это нужно? Я буду менять значение в ячейке которая находиться на один <tr> выше "ТЫЦ!!!" в <td> ячейке под номером 5 или 6. таблица выводиться динамически и нет возможности для каждого "ТЫЦ!!!" прописать свою функцию. Посоветуйте что нибудь)))
Ответить с цитированием
  #2 (permalink)  
Старый 06.09.2013, 08:46
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Человеческий путь? Можете привести пример такого пути?
Ответить с цитированием
  #3 (permalink)  
Старый 06.09.2013, 09:44
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от Гробовщик
Я буду менять значение в ячейке которая находиться на один <tr> выше "ТЫЦ!!!"
Как вариант...

<!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">
td {
	width: 50px;
	heigth: 50px;
}
</style>
<script type="text/javascript">
$(function (){
	$('td').click(function (){
		var or=$(this).parent().prev();
		if (or.length==0) return;
		var i=this.cellIndex;
		or=or.get(0);
		or.cells(i).innerHTML=or.rowIndex+', '+i;
	});
});
</script>
</head>
<body>
<table border='1'>
	<tr>
		<td>&nbsp;</td>
		<td>&nbsp;</td>
		<td>&nbsp;</td>
	</tr>
	<tr>
		<td>&nbsp;</td>
		<td>&nbsp;</td>
		<td>&nbsp;</td>
	</tr>
	<tr>
		<td>&nbsp;</td>
		<td>&nbsp;</td>
		<td>&nbsp;</td>
	</tr>
</table>
</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 06.09.2013, 11:46
Профессор
Отправить личное сообщение для Гробовщик Посмотреть профиль Найти все сообщения от Гробовщик
 
Регистрация: 10.03.2013
Сообщений: 169

BETEPAH,
var val=document.getElementById("table").getElementsBy TagName("tr")[2].getElementsByTagName("td")[1].innerHTML;
Как вариант
Ответить с цитированием
  #5 (permalink)  
Старый 06.09.2013, 11:51
Профессор
Отправить личное сообщение для Гробовщик Посмотреть профиль Найти все сообщения от Гробовщик
 
Регистрация: 10.03.2013
Сообщений: 169

ksa,
Да я тоже нашёл решение в cellIndex и rowIndex? только на чистом js у меня короче вышло.
На ячейку вешаем
OnClick="fClick (this)"

with (x) var fcell=cellIndex;
with (x) var frow=parentNode.rowIndex;
var val=document.getElementById("table").getElementsByTagName("tr")[frow].getElementsByTagName("td")[fcell].innerHTML;

Последний раз редактировалось Гробовщик, 06.09.2013 в 12:22.
Ответить с цитированием
  #6 (permalink)  
Старый 06.09.2013, 13:22
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от Гробовщик
у меня короче вышло
Я рад за тебя.
Ответить с цитированием
  #7 (permalink)  
Старый 06.09.2013, 13:27
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от Гробовщик
у меня короче вышло
Я не поленился... Сделал 2 текстовых файла

var or=$(this).parent().prev();
if (or.length==0) return;
var i=this.cellIndex;
or=or.get(0);
or.cells(i).innerHTML=or.rowIndex+', '+i;

Он 141 байт...

И

with (x) var fcell=cellIndex;
with (x) var frow=parentNode.rowIndex;
var val=document.getElementById("table").getElementsByTagName("tr")[frow].getElementsByTagName("td")[fcell].innerHTML;

Он 189 байт!

И у кого после этого короче?

Последний раз редактировалось ksa, 06.09.2013 в 13:48.
Ответить с цитированием
  #8 (permalink)  
Старый 06.09.2013, 13:46
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Сообщение от ksa
И у кого после этого короче?
Только в программировании такое возможно: мериться у кого короче
Ответить с цитированием
  #9 (permalink)  
Старый 25.09.2013, 19:22
Профессор
Отправить личное сообщение для Гробовщик Посмотреть профиль Найти все сообщения от Гробовщик
 
Регистрация: 10.03.2013
Сообщений: 169

ksa,
BETEPAH,
Весёлые вы ребята)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить размеры ячейки таблицы. kuzya_vl Элементы интерфейса 5 11.10.2016 11:11
Получение значения поля объекта зная путь к полю и сам объект mgvmax Общие вопросы Javascript 11 07.03.2012 19:09
onmouseout для ячейки таблицы. Sir_Hally Events/DOM/Window 2 24.01.2012 17:21
OnClick ячейки таблицы и ссылки в этой ячейке MasDen Javascript под браузер 2 30.06.2011 10:34
определить положение ячейки в таблице RRRinat Элементы интерфейса 6 27.04.2010 14:32