将此作为参数传递给函数

时间:2014-04-28 09:09:32

标签: jquery

我试图将this关键字传递给另一个函数,然后将其用作选择器来设置段落的css样式。我知道我可以做到这一点而不会像这样过于复杂,但我只是想知道是否有可能这样做。

 $("#test").click(function(){

 testFunction(this.id)

  });


  function(object)
  {
 $(object).css({'background-color': 'red'});

  }

4 个答案:

答案 0 :(得分:4)

你所做的工作,你只是错过了选择器中的#,因为它不包含在对象的id属性中:

$("#test").click(function() {
    testFunction(this.id)
});

function testFunction(object) {
    $('#' + object).css({ 'background-color': 'red' });
}

然而,更好的解决方案是将该函数作为click处理程序的引用,这意味着this关键字是对单击元素的引用,从而节省了对任何丑陋的选择器连接的需要:

$("#test").click(testFunction);

function testFunction() {
    $(this).css({ 'background-color': 'red' });
}

答案 1 :(得分:3)

其他答案是正确的。

但是,因为您没有在事件处理程序中执行任何操作。

为什么不简单地使用testFunction函数作为事件处理程序?然后你可以直接使用this

 $("#test").click(testFunction);

 function testFunction() {
    $(this).css({
        'background-color': 'red'
    });
 }

答案 2 :(得分:2)

如果我理解正确,这就是你正在寻找的......

$("#test").click(function(){
    testFunction(this);
});


function testFunction(object) {
    $(object).css({'background-color': 'red'});
}

<强> jsfiddle example

答案 3 :(得分:0)

让它变得简单

$("#test").click(function(){

    $(this).css('background-color', 'red');

});