在函数调用中选择$(this)的父级

时间:2012-07-20 18:20:32

标签: jquery function parent

我在调用函数时选择$(this)的父项时遇到问题。当我选择小1按钮时,可以选择仅切换按钮的按钮。我有一个函数调用来设置Big按钮。我知道我可以在不调用函数的情况下设置大按钮的状态,但这只是更多请求的开始。

我想添加$(this).parent()。prev()。addClass(' big_selected');会不会这样做,但它对我不起作用,有关如何捕获Big按钮元素和添加指定类的任何建议?

在此处查看演示... http://jsfiddle.net/froze1906/aSyUE/1/

2 个答案:

答案 0 :(得分:2)

在你的小提琴中对我有用的是改变:

setBig();

为:

setBig.call(this);

因此,在setBig函数中,this是单击的按钮。

你的setBig函数的参数为​​evt,但你永远不会使用它。如果您需要传递它,请将您的功能称为:

setBig.call(this, evt);

此外,您有两个具有相同ID的元素。元素ID应该是唯一的。

答案 1 :(得分:0)

这就是完成你想要的所有东西

$(':button[class*=small]').click(function(){ // <-- on all small button clicks
    $(this).parent().prev().addClass('big_selected'); // < -- add big class to closest big button
    $(this).addClass('small_selected'); // <-- add class to current clicked
    $(':button[class*=small]').not(this).removeClass('small_selected'); // <-- remove class from all but current clicked
    $(':button[class*=small]').not($(this).siblings().andSelf()).parent().prev().removeClass('big_selected'); // <-- remove class from Big that is not closest to current clicked
});

http://jsfiddle.net/aSyUE/3/