Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Получить элемент, на котором была вызвана функция (https://javascript.ru/forum/misc/18186-poluchit-ehlement-na-kotorom-byla-vyzvana-funkciya.html)

barcelona 21.06.2011 11:32

Получить элемент, на котором была вызвана функция
 
Здравствуйте!
<input type="button" onclick="item.sendForm();" class="btn" value="Отправить" name="btn">

item - экземпляр класса Class1. Можно ли внутри функции sendForm получить элемент, на котором был вызван данный метод (в данном случае, button)? На чистом js или на jquery?

Маэстро 21.06.2011 11:52

Цитата:

Сообщение от barcelona (Сообщение 109705)
Можно ли внутри функции sendForm получить элемент, на котором был вызван данный метод?

Можно, если Вы передадите в качестве параметра this
<input type="button" onclick="item.sendForm(this);" class="btn" value="Отправить" name="btn">
function sendForm(obj)
{
alert(obj.value);
};

nikita.mmf 21.06.2011 11:52

<input type="button" onclick="item.sendForm(this);" class="btn" value="Отправить" name="btn">

barcelona 21.06.2011 12:33

А без передачи this никак не обойтись? Исходный html править очень муторно, много где встречается.

walik 21.06.2011 12:40

Можно обойтись.
<input type="button" id="btn" value="Click me" onclick="check();"/>
<script>
function check() {
	var e = window.event;
	var obj = e.target||e.srcElement;
	alert(obj.id);
}
</script>

barcelona 21.06.2011 12:51

walik, в Firefox 3.6.3 вылетает "e is undefined"

walik 21.06.2011 13:04

И в правду undefined, я и не знал что в FF нельзя через window получить событие))
Тогда видимо и в правду остается вариант что бы передавать this

nikita.mmf 21.06.2011 13:28

напишите простой регекс по замене, соврременные IDE позваляют заменять во всем проекте одновременно.

barcelona 21.06.2011 17:19

Спасибо всем за помощь. Тема закрыта.

monolithed 21.06.2011 18:07

Цитата:

Сообщение от walik
И в правду undefined, я и не знал что в FF нельзя через window получить событие))

не только в FF.


Часовой пояс GMT +3, время: 04:01.