Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.07.2013, 20:34
Кандидат Javascript-наук
Отправить личное сообщение для zzzzzz Посмотреть профиль Найти все сообщения от zzzzzz
 
Регистрация: 25.09.2012
Сообщений: 111

Много parentNode
var id = _this.parentNode.parentNode.parentNode.parentNode. id;

у кнопки есть родитесь td у него tr у него table у него div
беру у дива id

Как сократить такую запись

Заранее спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 12.07.2013, 21:38
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

zzzzzz,
на квери это выгляделобы так
$(this).parents('div:first').attr('id')

Можно ли сократить такую запись
Сообщение от Aetae Посмотреть сообщение
Свою функцию parent сдаелать и всё.

Что-то типа:
function parent(node,n){
  while(n--&&(node=node.parentNode));
  return node
}

Хотя если случай единичен - оно не оправдано.
И вообще, по-хорошему, таких конструкций надо избегать.

Последний раз редактировалось рони, 12.07.2013 в 21:43.
Ответить с цитированием
  #3 (permalink)  
Старый 12.07.2013, 21:39
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от zzzzzz
Как сократить такую запись
Пересмотреть архитектуру приложения, подойти к проблеме с другой стороны. Ну а на край написать вспомогательную функцию.
Ответить с цитированием
  #4 (permalink)  
Старый 13.07.2013, 00:24
Кандидат Javascript-наук
Отправить личное сообщение для zzzzzz Посмотреть профиль Найти все сообщения от zzzzzz
 
Регистрация: 25.09.2012
Сообщений: 111

Спасибо
Ответить с цитированием
  #5 (permalink)  
Старый 13.07.2013, 08:06
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от рони
на квери это выгляделобы так
А помоему так:
$(this).closest('div').prop('id')
Ответить с цитированием
  #6 (permalink)  
Старый 13.07.2013, 08:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

danik.js,
и так и эдак
Ответить с цитированием
  #7 (permalink)  
Старый 13.07.2013, 10:16
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от рони
и так и эдак
Хм. Действительно. Правда closest помоему делает меньше работы. Вот только не помню поиск начинается от самого this или от его родителя..
Ответить с цитированием
  #8 (permalink)  
Старый 13.07.2013, 11:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

danik.js,
да closest лучше потому что это сокращённая запись parents('div:first') , atrr или prop не так важно но для строк рекомендуют attr
Ответить с цитированием
  #9 (permalink)  
Старый 13.07.2013, 12:13
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от рони
atrr или prop не так важно но для строк рекомендуют attr
Не не. Как раз таки рекомендуется использовать prop нежели attr. Допустим с атрибутом value ситуация не однозначная. Атрибут хранит начальное значение, тогда как свойство - текущее. Конечно же корректнее использовать свойство нежели атрибут. Также подозреваю имеется и разница в скорости.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Через ajax отправить много данных из таблицы на сервер Heger jQuery 3 29.08.2012 18:51
Чудеса математики js при padding borovik Элементы интерфейса 6 09.07.2011 22:02
в textarea много javascript, обрамленного js - тегами belbek Серверные языки и технологии 4 05.05.2010 16:58
как реализовать задачу? (автокомплит и много инпутов из под дома) h-zone jQuery 1 06.11.2009 20:09
На много ли код jQuery медленнее чистого javascript format1981 jQuery 8 06.11.2009 10:42