Javascript 获取被单击元素的ID并作为参数传递?

Javascript 获取被单击元素的ID并作为参数传递?,javascript,jquery,function,Javascript,Jquery,Function,如何通过jQuery获取被单击元素的ID,然后将其作为参数传递给函数?下面是jQuery代码示例 jQuery(document).ready(function() { var id = this_id; jQuery(".lightbox a").click({param: id}, functionName); }); 请允许我注意,param参数是函数结构的一部分 jQuery(".lightbox a").click(function(ev) { console

如何通过jQuery获取被单击元素的ID,然后将其作为参数传递给函数?下面是jQuery代码示例

jQuery(document).ready(function() {
    var id = this_id;
    jQuery(".lightbox a").click({param: id}, functionName);
});
请允许我注意,param参数是函数结构的一部分

jQuery(".lightbox a").click(function(ev) {
    console.log(ev.target.id);
}
很抱歉,我无论如何都不是Javascript大师。

您可以在单击事件中使用this.id,例如:

jQuery(".lightbox a").click(function() {
    var id = this.id;

    //pass to a function
    testFunction(id);
});

function testFunction(param) {
    console.log(param);
}
您可以在单击事件中使用this.id,例如:

jQuery(".lightbox a").click(function() {
    var id = this.id;

    //pass to a function
    testFunction(id);
});

function testFunction(param) {
    console.log(param);
}

您可以使用this.id或$this.attrid;,但是,如果您在其中执行了许多其他操作,您可能希望立即获取对$this的引用(包装或不包装),并从变量中执行操作。

您可以使用this.id或$this.attrid;,但是,如果您在$this中执行了很多其他操作,您可能希望立即获取对$this的引用(包装或不包装),并从一个变量开始工作。

只需访问this元素以获取单击的元素,然后提取其id并将其保存到一个变量中即可,如下所示:

jQuery(".lightbox a").click(function(){
  var id = jQuery(this).attr("id");
  callFunction(id);
});

只需访问this元素即可获得单击的元素,然后提取其id并将其保存到如下变量中:

jQuery(".lightbox a").click(function(){
  var id = jQuery(this).attr("id");
  callFunction(id);
});

在单击处理程序中,可以使用this.ID或$this.attr'ID'访问元素ID:


在单击处理程序中,可以使用this.ID或$this.attr'ID'访问元素ID:

你可以用$this.attid

实例

你可以用$this.attid

实例

您可以这样做:

jQuery(document).ready(function () {
    jQuery(".lightbox a").click(function (e) {

        // Cancel the default action (navigation) of the click.
        e.preventDefault();

        // 'this' here refers to the link being clicked in the current scope
        // you can check the console for the id for debug purpose
        console.log(this.id);

        // pass the id to the function
        functionName(this.id);
    });
});
您可以这样做:

jQuery(document).ready(function () {
    jQuery(".lightbox a").click(function (e) {

        // Cancel the default action (navigation) of the click.
        e.preventDefault();

        // 'this' here refers to the link being clicked in the current scope
        // you can check the console for the id for debug purpose
        console.log(this.id);

        // pass the id to the function
        functionName(this.id);
    });
});

另一种方法是使用传递给回调函数的事件参数

jQuery(".lightbox a").click(function(ev) {
    console.log(ev.target.id);
}

当然,它是jQuery和纯JS的混合体。

另一种方法是使用传递给回调函数的事件参数

jQuery(".lightbox a").click(function(ev) {
    console.log(ev.target.id);
}

当然,它是jQuery和纯JS的混合体。

通常您有一个用于声明事件的函数 功能事件 事件有一个目标,目标的id是,你想要的。所以

$("SomeElement").on("click", function(e){ callanotherFunction(e.target.id) })

是的,您想要的通常是一个用于声明事件的函数 功能事件 事件有一个目标,目标的id是,你想要的。所以

$("SomeElement").on("click", function(e){ callanotherFunction(e.target.id) })

是的,您想要的是

我猜关键是要将事件数据传递给一个函数,该函数需要支持。单击[eventData],handlereventObject语法,如果是,您必须自己迭代集合:

jQuery(document).ready(function($) {
    $(".lightbox a").each(function() {
        $(this).click({param: this.id}, functionName);
    });
});
编辑:

您也可以使用on来执行此操作:


我猜关键是将事件数据传递给一个函数,该函数需要支持.click[eventData],handlereventObject语法,如果是这样,您必须自己迭代集合:

jQuery(document).ready(function($) {
    $(".lightbox a").each(function() {
        $(this).click({param: this.id}, functionName);
    });
});
编辑:

您也可以使用on来执行此操作:


这毫无意义,文档没有id,而这个id可能应该是this.id,也不是说它可以这样工作?这里的这个id是什么?您的代码示例似乎与您的问题无关。可能的重复没有任何意义,文档没有id,而此id可能应该是this.id,也不是说它会以这种方式工作?这里的这个id是什么?您的代码示例似乎与您的问题无关。无论您何时编写$this.attr'name'或$this.prop'name'都可能重复。通常编写this.name会更好、更容易。谢谢,我不知道这种方法。好的,那么我将详细说明一下$prop'name'正在读取它所引用的DOM元素的name属性。但是,您可以直接访问该属性,避免创建jQuery对象和调用方法的开销。只需执行此操作即可。从技术上讲,$this.attr'name'相当于这个.getAttribute'name',但是在处理DOM元素时,您需要更新的DOM属性而不是HTML属性,所以同样,您只需要使用这个.name。@FelixKling很好的解释。这就像让别人把酱汁递过来,而不是自己抓。每当你写$this.attr'name'或$this.prop'name'时,写这个通常会更好更容易。name.谢谢,我不知道这种方法。好的,那我就详细说明一下$prop'name'正在读取它所引用的DOM元素的name属性。但是,您可以直接访问该属性,避免创建jQuery对象和调用方法的开销。只需执行此操作即可。从技术上讲,$this.attr'name'相当于这个.getAttribute'name',但是在处理DOM元素时,您需要更新的DOM属性而不是HTML属性,所以同样,您只需要使用这个.name。@FelixKling很好的解释。这就像让别人把酱汁递过来,而不是自己抓。别担心,jquery毕竟是jsp。别担心,jquery毕竟是jspjs@roasted,确实可以不用匿名函数,但对我来说,匿名函数使它更灵活一些。考虑是否想从事件处理程序以外的其他地方调用函数名。您必须在调用它之前设置this上下文,而不是仅仅传递一个ID,如果您没有元素的句柄,那么您必须
o查找DOM。在任何一个不完全琐碎的应用程序中,我都不希望函数依赖于点击,事实上,它可以在没有匿名函数的情况下完成,但对我来说,匿名函数让它更灵活一些。考虑是否想从事件处理程序以外的其他地方调用函数名。在调用它之前,您必须设置this上下文,而不是仅仅传递一个ID。如果您没有元素的句柄,您还必须查找DOM。在任何一个并非完全琐碎的应用程序中,我都不希望函数依赖于点击。。