1

我有一个简单的 JavaScript 函数:

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

我从两个地方调用相同的 Javascript 函数,比如:

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

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

如何找到调用这个函数的目标元素?

编辑:如何检查元素是按钮还是其他元素?

4

6 回答 6

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)
}

演示:小提琴

于 2013-05-22T11:26:13.497 回答
2
function f1(element)
{
    alert($(element).attr("id"));

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

<input type="submit" id="btn2" onclick="f1(this)"/>
于 2013-05-22T11:25:42.460 回答
2

试试这个

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

和控制台一样

function f1(comp)
{
    console.log(comp);
}
于 2013-05-22T11:26:07.033 回答
1

如果您已经在您的页面上使用 jquery,也许您应该尝试提供您想要针对共享类的所有元素,然后检测点击?

<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>

当然,如果您不在页面上使用 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>
于 2013-05-22T11:52:54.283 回答
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将包含对元素的引用

编辑:添加代码来检测 HTML 元素的类型

于 2013-05-22T11:27:04.687 回答
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);
}
于 2013-05-22T11:27:12.907 回答