我写了这个函数:
jQuery(document).ready(function() {
jQuery('input[type=text]').each( function(i) {
thisval = jQuery(this).val();
jQuery(this).blur( function() {
if (jQuery(this).val() == '') {
jQuery(this).val(thisval);
}
}); // end blur function
jQuery(this).focus( function() {
if (jQuery(this).val() == thisval) {
jQuery(this).val('');
};
});// end focus function
}); //END each function
}); // END document ready function
它旨在获取输入的值,然后如果用户在没有输入新值的情况下点击离开,则旧值将返回。这适用于页面上的输入之一,但不适用于其他输入。但是,当我删除 .blur 和 .focus 函数并只使用 alert(thisval);它会提醒每个输入的名称,所以我的功能有问题,但我不知道是什么。有帮助吗?
最佳答案
声明变量时需要var
,这样它就不是共享的全局变量,如下所示:
var thisval = jQuery(this).val();
此外,由于您专门处理文本输入,因此您可以只使用 .value
DOM 属性,像这样:
jQuery(function() {
jQuery('input[type=text]').each(function(i) {
var thisval = this.value;
jQuery(this).blur( function() {
if (this.value == '') this.value = thisval;
}).focus( function() {
if (this.value == thisval) this.value = '';
});
});
});
关于javascript - 为什么我的 jquery .each() 函数不能正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3795134/