2011-07-06 19 views
5

Girdi değerlerine göre filtrelemek için jQuery'de yerleşik bir işlev/seçici var mı?Değerleri girişe göre filtrelemek için işlev/seçici

$.extend($.expr[":"], { 
    val: function(elem, index, match) { 
     return $(elem).val() == match[3]; 
    } 
}); 

ve bu gibi kullanmak:

Özel bir seçici oluşturabilirsiniz $("input:val('Some text')").

Sadece böyle bir şeyin var olup olmadığını merak ediyordum ya da belki daha iyi bir yol var.

cevap

2

Bunu yapabilirsin: yerleşik bir çözüm var gibi

+2

Bu varsayılan (öznitelik) değeri döndürür ama kontrolün mevcut değerini gerekir. – Corneliu

+0

İlk, tüm değeri = 'someval' değeriyle seçecektir. Bu bir seçici, jquery nesnelerinin bir koleksiyonunu döndürür. Bu, yalnızca girdileri belirli bir değere döndürdüğü için "girdileri değere göre filtreler". –

+8

value = 'someval', denetimleri "değer" özniteliği tarafından tanımlanan başlangıç ​​değerine göre filtreler. , kullanıcı giriş kutusundaki metni değiştirirse, ex 'newval' için giriş [value = someval] yine de node'u seçer. en azından standart olarak uyumlu tarayıcılarda, örneğin FF), çünkü varsayılan değer hala 'someval'. IE, HTML standardına uygun olmayan geçerli değere göre filtreleyecektir. – Corneliu

2
$.extend($.expr[":"], { 
    val: function(elem, index, match) { 
     return $.trim($(elem).val()) == $.trim(match[3]); 
    } 
}); 
4

görünmüyor:

$('input[value=someval]') 

zaman bunun

$('input[type=radio][value=someval]') 

bakış here zincir olabilir . Ama bir kerelik seçici için, .filter() bir seçenektir:

$('input').filter(function() { return $(this).val() === 'Some text'; }); 
İlgili konular