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

时间:2013-06-18 15:51:42

标签: javascript jquery function

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

jQuery(document).ready(function() {
    var id = this_id;
    jQuery(".lightbox a").click({param: id}, functionName);
});

请注意,“param”参数是函数结构的组成部分。

道歉,无论如何我都不是Javascript的主人。

10 个答案:

答案 0 :(得分:5)

在点击处理程序中,您可以使用this.id$(this).attr('id')访问元素ID:

jQuery(document).ready(function() {
    jQuery(".lightbox a").click(function(){
        functionName(this.id);
    });
});

答案 1 :(得分:5)

我猜测重点是将事件数据传递给期望的函数,因为click()支持.click( [eventData ], handler(eventObject) )语法,如果是这样,你必须自己迭代集合:< / p>

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

修改

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

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

FIDDLE

答案 2 :(得分:3)

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

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

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

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

答案 3 :(得分:3)

只需访问this元素即可获取点击后的元素,然后提取其 ID 并将其保存为如下变量:

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

答案 4 :(得分:3)

http://jsfiddle.net/pArW6/

jQuery(document).ready(function() {
   jQuery(".lightbox a").click(functionName);
});

function functionName()
{ 
  alert(this.id);   
}

答案 5 :(得分:2)

您可以使用this.id$(this).attr("id");,但您可能希望立即获取对$(this)的引用 - 包裹或不包含 - 并且如果您执行其他任何操作,则可以使用变量进行操作在那里。

答案 6 :(得分:2)

您可以使用$(this).att("id")

$(".lightbox a").click(function() {
    var ID=$(this).att("id");

    //pass to a function
    TestFunction(ID);
});

function TestFunction(P) {
    console.log(P);
}

实例

http://jsbin.com/enobop/1/edit

答案 7 :(得分:2)

你可以这样做:

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

答案 8 :(得分:2)

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

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

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

答案 9 :(得分:2)

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

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

做什么,你想要什么