2013-05-22 7 views
1

У меня есть простой JavaScript Функция:Вызов функции Javascript несколько раз

function f1() 
{ 
    alert("HI"); 
} 

Я звоню ту же функцию Javascript из двух мест, говорят:

<input type="submit" id="btn1" onclick="f1()"/> 

<input type="submit" id="btn2" onclick="f1()"/> 

Как найти целевой элемент, который называется эта функция?

EDIT: Как проверить, является ли элемент кнопкой или каким-либо другим?

+0

Если вы используете JQuery, что точка встроенного javascript? Используйте '$ (# btn1) .click (...)'. – georg

ответ

4

HTML

<input type="submit" id="btn1" onclick="f1(this)"/> 
<input type="submit" id="btn2" onclick="f1(this)"/> 

Js

function f1(el) { 
    console.log(el) 
} 

Демо: Fiddle

2
function f1(element) 
{ 
    alert($(element).attr("id")); 

    if ($(element).is(":button")) { 
     alert("Im button"); 
    } 
} 

<input type="submit" id="btn2" onclick="f1(this)"/> 
+0

Как проверить, является ли элемент кнопкой или другим? – Pearl

+0

Обновлен ответ –

+0

Отметьте мой ответ –

2

Попробуйте с это

<input type="submit" id="btn1" onclick="f1(this)"/> 
<input type="submit" id="btn2" onclick="f1(this)"/> 

и консоли, как

function f1(comp) 
{ 
    console.log(comp); 
} 
1

Добавить this в вызов функции

<input type="submit" id="btn1" onclick="f1(this)"/>

<input type="submit" id="btn2" onclick="f1(this)"/>

и изменить JS, как

function f1(el) 
{ 
    alert(el.nodeName) ; // alerts type of HTML element 
} 

el будет содержать ссылку на элемент

EDIT: добавлен код для обнаружения типа HTML элемента

1

Самый простой способ:

<input type="submit" id="btn1" onclick="f1(this)"/> 

<input type="submit" id="btn2" onclick="f1(this)"/> 

JS:

function f1(btn) 
{ 
    alert("Hi from " + btn); 
} 
1

Если вы уже используете, используя jquery on y наша страница, может быть, вам следует попробовать предоставить все элементы, которые вы хотите настроить для общего класса, а затем обнаружить клики?

<input class="same_kind_buttons" type="submit" id="btn1" /> 
<input class="same_kind_buttons" type="button" id="btn2" /> 


<script> 
$(".same_kind_buttons").click(function() { 
    console.log($(this).attr("type")); 
    console.log(this.id); 
}); 
</script> 

Конечно, если your'e не с помощью JQuery на странице вы не должны включать его только для этой функции, и вы можете использовать:

<input type="submit" id="btn1" onclick="f1(this);"/> 
<input type="submit" id="btn2" onclick="f1(this);" /> 

<script> 
    function f1(elem) { 
    console.log(elem.tagName); 
    console.log(elem.id); 
    } 
</script> 
Смежные вопросы