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);
}
);
}
);
提前感谢您的帮助。 : - )
答案 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);
}
}
}
}