多个jQuery对象的相同功能

时间:2010-01-10 21:21:46

标签: javascript jquery

我希望为2个jQuery对象运行相同的函数:$('input[type="text"]')$('textarea[type=text]')。如何在下面的代码中将这两者结合起来? (目前只包括输入)。

$('input[type="text"]').focus(function() {   
        if (this.value == this.defaultValue){  
            this.value = '';  
        }  
        if(this.value != this.defaultValue){  
            this.select();  
        }  
}); 

$('input[type="text"]').blur(function() {    
        if ($.trim(this.value == '')){  
            this.value = (this.defaultValue ? this.defaultValue : '');  
        }  
});  

谢谢!

3 个答案:

答案 0 :(得分:9)

试试这个:

$('textarea[type="text"], input[type="text"]').focus(...).blur(...);

同样,您也可以使用jQuery的add函数:

$('textarea[type="text"]').add('input[type="text"]').focus(...).blur(...);

答案 1 :(得分:1)

可能更容易在其上加上一个类并按此过滤。

答案 2 :(得分:0)

你可以创建一个插件:

jQuery.fn.clearDefValueOnFocus = function() {
    return this.focus(function(){
        if (this.value == this.defaultValue){  
            this.value = '';  
        }  
        if(this.value != this.defaultValue){  
            this.select();  
        }  
    }).blur(function(){
        if (jQuery.trim(this.value) == ''){  
            this.value = this.defaultValue || '';  
        }  
    });
};

$('input[type="text"]').clearDefValueOnFocus();
$('textarea[type=text]').clearDefValueOnFocus();