Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.12.2015, 10:56
Аспирант
Отправить личное сообщение для shurik_shink Посмотреть профиль Найти все сообщения от shurik_shink
 
Регистрация: 22.05.2015
Сообщений: 35

Как через оператор this определить текущий елемент для которого выполняется функция?
Подскажите кто знает - как через оператор this определить текущий элемент для которого выполняется функция.

Пример использования может быть такой
<script>
document.getElementById("ENAME").addEventListener("event_name","func_name");

function func_name(event){
....
....
}
</script>


Как используя оператор this в функции func_name получить ссылку на сам элемент аналогично оператору - var e = document.getElementById("ENAME");
Возможно ли это?

Мне это нужно что бы можно было обратиться к дочерним элементам.

Последний раз редактировалось shurik_shink, 17.12.2015 в 10:59.
Ответить с цитированием
  #2 (permalink)  
Старый 17.12.2015, 11:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

shurik_shink,
this и будет сам элемент, а this.children коллекция дочерних элементов
Ответить с цитированием
  #3 (permalink)  
Старый 17.12.2015, 12:52
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

"func_name" без кавычек нужно писать
addEventListener("event_name", func_name);
Ответить с цитированием
  #4 (permalink)  
Старый 17.12.2015, 15:29
Аспирант
Отправить личное сообщение для shurik_shink Посмотреть профиль Найти все сообщения от shurik_shink
 
Регистрация: 22.05.2015
Сообщений: 35

Сообщение от рони Посмотреть сообщение
shurik_shink,
this и будет сам элемент, а this.children коллекция дочерних элементов
Да, с использованием библиотеки jquery.
Например
var $child = $(this).children(".class1");


А можно ли как-то обойтись без библиотеки jquery?
Ответить с цитированием
  #5 (permalink)  
Старый 17.12.2015, 15:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

shurik_shink,
var $child = [].filter.call(this.children, function(child) {
  return child.classList.contains('class1');
});
Ответить с цитированием
  #6 (permalink)  
Старый 17.12.2015, 16:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

shurik_shink,
если данный класс имеют только дочерние элементы можно так
var $child = this.querySelectorAll('.class1');
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Как сделать чтобы функция сработала для подргуженого контента? olexand777 jQuery 5 28.01.2013 17:54
Как определить, что места для отображения не хватает? fedor.belov Общие вопросы Javascript 3 15.02.2012 11:37
Как указать title при открытии окна через window.open для chrome milvic Opera, Safari и др. 4 15.01.2011 15:18