2012-09-07 86 views
4

我正在嘗試編寫一個清除除一個之外的所有輸入字段的值的腳本。該腳本仍然清除DESCRIPTION輸入字段。jquery清除除了一個之外的所有輸入字段的值

jQuery('.campaign-column').not('active').each(function(index){ 
    if(jQuery('.campaign-column input[name!="DESCRIPTION"]')){ 
     jQuery(this+':input').val(''); 
     } 
    }); 

回答

8

簡化:

$('.campaign-column:not(.active) input:not([name="DESCRIPTION"])').val('') 

我假設你的意思.not('.active'),而不是.not('active'),因爲在HTML中沒有<active>元素。請注意,原始代碼中的循環(.each())毫無意義,因爲每次迭代都會反覆選擇相同的元素。

+2

+1,這是美麗的 –

+0

@ user1413248其CSS選擇器等等它尋找.campaign-column的子輸入,這就是爲什麼在那裏有一個空間。 – Mark

+0

哇,這太棒了!唯一的是它不清除.campaign-column中描述的值:not(.active)。它應該清除這一點,除了那些有「積極」類的。 – user1413248

1

你不需要寫在這種情況下,每個循環..試試這個

$(function(){ 
    // Select all text fields but not Description field.. 

    var $txtfields = $('.campaign-column:not(.active)').find('input[type=text][name!=DESCRIPTION]') 

    $('#btn1').on('click', function() { 
     $txtfields.val('') ; 
    }); 
});​ 

檢查這個FIDDLE的工作示例

+0

這對我的需求來說是一個更好的選擇 – hanzolo

相關問題