Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Можно ли упростить JS код ? / 25 сообщений из 44, страница 1 из 2
20.09.2012, 10:20:42
    #37965152
andMegaM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить JS код ?
Имеется таблица след. содержания:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<table>
.......
<tr>
     <td><strong>5 шт.</strong></td>
     <td class="tovar">Наименование товара</td>
     <td class="tovar">Завод изготовитель</td>
     <td><a href="#" class="update_tovar" id='tov-12345'>Изменить</a></td>
</tr>
.......
</table>


При нажатии на ссылку "Изменить" мне нужно получить "Наименование товара" и "Завод изготовитель".
Делаю это так:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
$('.update_tovar').live('click', function(e){

    tovar = $(this).parent().parent().find('.tovar').eq(0).text();
    zavod = $(this).parent().parent().find('.tovar').eq(1).text();

    alert(tovar +' \n'+ zavod);
        
});



Можно ли упростить присвоение переменным tovar и zavod ?
...
Рейтинг: 0 / 0
20.09.2012, 10:32:59
    #37965179
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить JS код ?
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
$tds = $(this).parent().parent().find('.tovar');
tovar = $tds.eq(0).text();
zavod = $tds.eq(1).text();

tdz = this.parentNode.previousSibling;
tdt = tdz.previousSibling;
tovar = tdt.innerHTML;
zavod = tdz.innerHTML;
...
Рейтинг: 0 / 0
20.09.2012, 11:09:28
    #37965238
andMegaM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить JS код ?
Переменной tovar присваивается "Завод изготовитель"
переменной zavod - undefined
...
Рейтинг: 0 / 0
20.09.2012, 11:27:37
    #37965284
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить JS код ?
Все время забываю про текстовые сиблинги с переносами и пробелами.
Код: javascript
1.
2.
tdz = this.parentNode.previousSibling.previousSibling;
tdt = tdz.previousSibling.previousSibling;
...
Рейтинг: 0 / 0
20.09.2012, 11:31:28
    #37965300
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить JS код ?
Antonariy
Код: javascript
1.
.parent().parent()

http://api.jquery.com/closest/
...
Рейтинг: 0 / 0
20.09.2012, 11:36:23
    #37965311
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить JS код ?
не того человека процитировал, сорри
...
Рейтинг: 0 / 0
20.09.2012, 11:37:02
    #37965314
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить JS код ?
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<html>
<body>
<table>
<tr>
     <td><strong>5 шт.</strong></td>
     <td class="tovar">Наименование товара</td>
     <td class="tovar">Завод изготовитель</td>
     <td><a href="javascript:void(0);" onclick="alert(this.parentNode.parentNode.cells[1].innerHTML+'\n'+this.parentNode.parentNode.cells[2].innerHTML);" class="update_tovar" id='tov-12345'>Изменить</a></td>
</tr>
</table>
</body>
</html>
...
Рейтинг: 0 / 0
20.09.2012, 11:39:38
    #37965320
andMegaM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить JS код ?
AntonariyВсе время забываю про текстовые сиблинги с переносами и пробелами.
Код: javascript
1.
2.
tdz = this.parentNode.previousSibling.previousSibling;
tdt = tdz.previousSibling.previousSibling;



Да, работает. Но в итоге получаем :

Код: javascript
1.
2.
    tovar = this.parentNode.previousSibling.previousSibling.previousSibling.previousSibling.innerHTML;   
    zavod = this.parentNode.previousSibling.previousSibling.innerHTML;



вместо :
Код: javascript
1.
2.
    tovar = $(this).parent().parent().find('.tovar').eq(0).text();
    zavod = $(this).parent().parent().find('.tovar').eq(1).text();



Что-то не получается короче.
...
Рейтинг: 0 / 0
20.09.2012, 12:55:26
    #37965495
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить JS код ?
Мои 5 копеек...

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
<!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">
$(document).ready(function(e){
	$('.update_tovar').live('click', function(e){
		tovar = $(this).parents('tr').find('.tovar').eq(0).text();
		zavod = $(this).parents('tr').find('.tovar').eq(1).text();
		alert(tovar +' \n'+ zavod);
	});
});
</script>
</head>
<body>
<table>
<tr>
     <td><strong>5 шт.</strong></td>
     <td class="tovar">Наименование товара</td>
     <td class="tovar">Завод изготовитель</td>
     <td><a href="#" class="update_tovar" id='tov-12345'>Изменить</a></td>
</tr>
</table>
</body>
</html>
...
Рейтинг: 0 / 0
20.09.2012, 12:57:21
    #37965498
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить JS код ?
И еще нажим!

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
<script type="text/javascript">
$(document).ready(function(e){
	$('.update_tovar').live('click', function(e){
		tovar = $('.tovar',$(this).parents('tr')).eq(0).text();
		zavod = $('.tovar',$(this).parents('tr')).eq(1).text();
		alert(tovar +' \n'+ zavod);
	});
});
</script>
...
Рейтинг: 0 / 0
20.09.2012, 12:59:48
    #37965504
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить JS код ?
И если структура ячеек всегда такая...

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
<script type="text/javascript">
$(document).ready(function(e){
	$('.update_tovar').live('click', function(e){
		tovar = $('td',$(this).parents('tr')).eq(1).text();
		zavod = $('td',$(this).parents('tr')).eq(2).text();
		alert(tovar +' \n'+ zavod);
	});
});
</script>
...
Рейтинг: 0 / 0
20.09.2012, 13:04:30
    #37965519
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить JS код ?
Кумир! Добей меня танцем!!! (с) КВН

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<script type="text/javascript">
$(document).ready(function(e){
	$('.update_tovar').live('click', function(e){
		zavod=$('td',$(this).parents('tr'));
		tovar = zavod.eq(1).text();
		zavod = zavod.eq(2).text();
		alert(tovar +' \n'+ zavod);
	});
});
</script>
...
Рейтинг: 0 / 0
20.09.2012, 13:07:01
    #37965527
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить JS код ?
andMegaMAntonariyВсе время забываю про текстовые сиблинги с переносами и пробелами.
Код: javascript
1.
2.
tdz = this.parentNode.previousSibling.previousSibling;
tdt = tdz.previousSibling.previousSibling;



Да, работает. Но в итоге получаем :

Код: javascript
1.
2.
    tovar = this.parentNode.previousSibling.previousSibling.previousSibling.previousSibling.innerHTML;   
    zavod = this.parentNode.previousSibling.previousSibling.innerHTML;



вместо :
Код: javascript
1.
2.
    tovar = $(this).parent().parent().find('.tovar').eq(0).text();
    zavod = $(this).parent().parent().find('.tovar').eq(1).text();



Что-то не получается короче.А зачем плодить одни и те же действия? Копипастом код пишешь что ли?
this.parentNode.previousSibling.previousSibling или $(this).parent().parent().find('.tovar') повторенное несколько раз является говнокодом.
Привычка так писать откликнется тормозами в каком-нибудь цикле.
...
Рейтинг: 0 / 0
20.09.2012, 13:14:02
    #37965546
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить JS код ?
ShSerge
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<html>
<body>
<table>
<tr>
     <td><strong>5 шт.</strong></td>
     <td class="tovar">Наименование товара</td>
     <td class="tovar">Завод изготовитель</td>
     <td><a href="javascript:void(0);" onclick="alert(this.parentNode.parentNode.cells[1].innerHTML+'\n'+this.parentNode.parentNode.cells[2].innerHTML);" class="update_tovar" id='tov-12345'>Изменить</a></td>
</tr>
</table>
</body>
</html>


А чем моё не годится-то? Или я чё-то не понял?
...
Рейтинг: 0 / 0
20.09.2012, 13:28:17
    #37965593
Можно ли упростить JS код ?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
window.onload = function() {
     var upd = document.getElementsByClassName('update_tovar'),
     i, max;
     for(i = 0, max = upd.length; i < max; i += 1) {
           upd[i].onclick = function() {
                  var inf = this.parentNode.parentNode.getElementsByClassName('tovar');
                  console.log(inf[0] + ' ' + inf[1]);
           };
     }
};


если покажется не очень кроссброузерно или ("повторенное несколько раз является говнокодом" (С) ;) можно самому реализовать методы
getElementsByClassName
+ поиск родительского нода по его имени - там несложно (банальная рекурсия)!!!
...
Рейтинг: 0 / 0
20.09.2012, 13:35:05
    #37965612
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить JS код ?
как-то так...можно самому реализовать методы
getElementsByClassName
Часы-то маленькие... А вот батарейки к ним в двух чемоданах! (с) из анекдота
...
Рейтинг: 0 / 0
20.09.2012, 13:36:45
    #37965616
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить JS код ?
ShSergeА чем моё не годится-то?
Букав в нём много...
...
Рейтинг: 0 / 0
20.09.2012, 13:59:00
    #37965672
Можно ли упростить JS код ?
авторЧасы-то маленькие... А вот батарейки к ним в двух чемоданах! (с) из анекдота
ой! relax... jQuery чай поболе будет!
...
Рейтинг: 0 / 0
20.09.2012, 14:07:07
    #37965695
andMegaM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить JS код ?
krvsaКумир! Добей меня танцем!!! (с) КВН

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<script type="text/javascript">
$(document).ready(function(e){
	$('.update_tovar').live('click', function(e){
		zavod=$('td',$(this).parents('tr'));
		tovar = zavod.eq(1).text();
		zavod = zavod.eq(2).text();
		alert(tovar +' \n'+ zavod);
	});
});
</script>


Спасибо! Такой вариант, как мне кажется, более понятен и удобочитаем.
...
Рейтинг: 0 / 0
20.09.2012, 14:23:33
    #37965732
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить JS код ?
andMegaM,

В своём-ли Вы уме?
...
Рейтинг: 0 / 0
20.09.2012, 14:53:36
    #37965830
andMegaM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить JS код ?
ShSergeandMegaM,

В своём-ли Вы уме?
что нетак?
...
Рейтинг: 0 / 0
20.09.2012, 15:04:28
    #37965852
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить JS код ?
andMegaMShSergeandMegaM,

В своём-ли Вы уме?
что нетак?
Возьмите мой код. Типа, скопировать в файл и запустить из-под любого браузера, не работает? Надо жКвери с говнокодом прикручивать?
Я ответил чисто по сабжу: " Можно ли упростить JS код ? ". Может, я его не совсем понял. А если верно понял, то спросил: "в своём-ли Вы уме".
...
Рейтинг: 0 / 0
20.09.2012, 15:19:05
    #37965891
andMegaM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить JS код ?
К проекту уже прикручен Jquery и писать чистый JS-код считаю не совсем правильным подходом.
Конечно, ради одной кнопки прикручивать Jquery не стал бы.

Почему след. код считается говнокодом?
Код: javascript
1.
2.
3.
4.
5.
6.
$('.update_tovar').live('click', function(e){
   zavod=$('td',$(this).parents('tr'));
   tovar = zavod.eq(1).text();
   zavod = zavod.eq(2).text();
   alert(tovar +' \n'+ zavod);
});
...
Рейтинг: 0 / 0
20.09.2012, 15:29:26
    #37965920
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить JS код ?
andMegaM,

Букаф много.
...
Рейтинг: 0 / 0
20.09.2012, 15:32:15
    #37965925
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли упростить JS код ?
andMegaMК проекту уже прикручен Jquery и писать чистый JS-код считаю не совсем правильным подходом...
Считайте себе, что хотите, только потом не задавайте вопросов, что в сабже: " Можно ли упростить JS код ?".
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Можно ли упростить JS код ? / 25 сообщений из 44, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]