需要父函数的返回元素的类

时间:2009-10-21 19:16:42

标签: jquery function css-selectors

jQuery有点新鲜,所以请原谅正确识别事物的尝试。

我需要一个元素的id反映在一个选择器中,这个函数有很多功能,而且我不太清楚如何去做。

$("input[type='file'][id^='pic_']").change(       //I need this element's id...
    function()
    {
        $("."+this.id).hide("fast",
            function()
            {
                //..to be reflected in this class selector
                $("."+this.id).attr("checked", true);
            }
        );
    }
);

提前感谢您的帮助。 : - )

3 个答案:

答案 0 :(得分:1)

这使用闭包将带有id的变量带入最内层函数的范围。

$("input[type='file'][id^='pic_']").change(       //I need this element's id...
        function()
        {
                var fileSelector = "." + this.id;
                $(fileSelector).hide("fast",
                        function()
                        {
                                //..to be reflected in this class selector
                                $(fileSelector).attr("checked", true);
                        }
                );
        }
);

答案 1 :(得分:0)

似乎是一个可变范围的问题:

$("#my_input").change(function() {
    var my_id = $(this).attr('id');
    $(this).hide('fast', function() {
        alert(my_id); // Will show an alert with the id from above.
        alert($(this).attr('id')); // *Should* show an alert with the same id.
    });
});

答案 2 :(得分:0)

事件回调中的this变量是托管事件的DOM元素。在更改函数回调中,这是更改的元素。因此:

$("input[type='file'][id^='pic_']").change(
  function() {
    $(this).hide("fast",
      function() {
        $(this).attr("checked", true);
      }
    }
  }
}