我试图将this关键字传递给另一个函数,然后将其用作选择器来设置段落的css样式。我知道我可以做到这一点而不会像这样过于复杂,但我只是想知道是否有可能这样做。
$("#test").click(function(){
testFunction(this.id)
});
function(object)
{
$(object).css({'background-color': 'red'});
}
答案 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');
});