jQuery not(),忽略某些命名元素

时间:2011-09-20 01:33:40

标签: jquery jquery-selectors

希望你能帮助我!

我有一个表单,其中包含大量inputs。这些输入的初始类为inputLight,使用浅灰色文本。我有以下jQuery代码,在focus上将文本颜色更改为inputDark,并在blur上将其更改回来:

$('input').focus(function(){
$(this).attr('class', 'inputDark');})
.blur(function() {$(this).attr('class', 'inputLight');

这绝对有效。我还有以下代码,以便在首次选择时删除input的值。

/* First time only, delete default text*/
$('input').one('focus', function(){
$(this).val('');});

也有效。我要去哪里?好吧,我有两个input按钮,一个用于提交表单,另一个用于清除它 - 但我的问题不在于验证。

当用户点击任一按钮时,它当然会删除它的值。并改变文本的颜色。

我不希望这些按钮发生任何事件,这些按钮名为Submit ButtonClear Button

我尝试使用:

/* Toggle gray/black text */
$('input').not('input[name=Submit Button]').not('input[name=Clear Button]').focus(function()     {$(this).attr('class', 'inputDark');}).blur(function() {$(this).attr('class', 'inputLight');   });

/* First time only, delete default text*/
$('input').not('input[name=Submit Button]').not('input[name=Clear Button]').one('focus', function(){
$(this).val('');
});

对不起那里的坏标记,我知道它看起来一定很糟糕。

使用.not()函数,这两个函数都不起作用,但按钮有效。取出.not()并且效果有效,但按钮会变得混乱。

有人可以帮我吗?

1 个答案:

答案 0 :(得分:2)

不会$('input:text')提高效率吗?

$('input:text').focus(function(){
$(this).attr('class', 'inputDark');})
.blur(function() {$(this).attr('class', 'inputLight');

/* First time only, delete default text*/
$('input:text').one('focus', function(){
$(this).val('');});