2009-06-30 2 views
30

Ben var bir ASP.NET yineleyici tarafından oluşturulan aşağıdaki HTML: Yanında ben ardından Sütunları manipüle böyleceGizli bir alanı değer olarak nasıl seçebilirim?

<table> 
    <tr> 
    <td><input type="hidden" name="ItemId" id="ItemId" value="3" /></td> 
    <td>Terry</td> 
    <td>Deleted</td> 
    <td>Low</td> 
    <td>Jun 21</td> 
    </tr> 
    <!-- rows repeat --> 
</table> 

nasıl, değerine göre belli bir gizli bir alan seçilir?

+2

Neden kendine hayatını kolaylaştıracak ve kimliğine göre alanını alamadım? – RichardOD

+0

Eğer kimliğini alamıyorsanız, o zaman birisi bir araya gelebilir, sayfanıza bir girdi ekleyebilir ve her ikisinin de aynı değere sahip olması durumunda bir hata alabilirsiniz; id tarafından yapmak daha güvenli görünüyor – jcollum

+0

@Richard - Bir ASP.NET Tekrarlayıcı İçinde her gizli alan farklı bir kimlik (olması gerektiği gibi) alır, ör. ctl100_ItemId, ctl101_ItemId, vb. Genellikle bu kimlikleri $ ('id $ = ItemId') ile hedefleriz (ile biter), ancak bu burada iyi çalışmaz. – Kobi

cevap

83

jQuery Selectors kullanarak, istenen değerle eşleşen belirli özelliğine göre eleman hedefleyebilir:

$('input[value="Whatever"]'); 

Bu şekilde istenilen değere eşittir özniteliği value tarafından, bir input elemanı hedefliyorsunuz. DÜZENLEME 5/14/2013

: Aşağıda bir cevap göre, bu artık jQuery 1.9 itibariyle çalışır.

+4

Sadece bahsetmek istedim, ancak sorgulama yaptığınız değer etrafında tırnak kullanırken çapraz tarayıcı uyumluluğu sorunları olabilir. $ ('input [value = Whatever]'), bu tür sorguları yapmak için kabul edilen yol gibi görünüyor. –

+2

Glyn Jones tarafından belirtildiği gibi, bu jQuery 1.9+ ile çalışmaz. Alternatif için aşağıdaki cevaba bakınız. –

+0

Teknik olarak, eğer 'value' * özniteliği * ile eşleştirmek istiyorsanız, bu cevap hala doğru olanıdır. Tabii ki, jQuery, seçmenleri kendi ihtiyaçları için biçimlendirmeyi sevdiği için, öznitelik seçicileri her zaman böyle çalışmadı. 1.9 + 'da şimdi, spec'e göre çalışırlar, bu da * sadece *, biçimlendirmede bildirilen "value" özniteliği ile eşleşir ve *. *. * .value' DOM özelliği ile eşleşir. – BoltClock

8
$('input:hidden[value=\'3\']'); 
10

Not: girişinin 'değeri Teknik olarak bir nitelik olmadığı için seçici, artık geçerli değildir jQuery 1.9 girişi [değer = "muz"] yana. Kullanmak için (okumak çok daha zor) .filter

E.g.

$("input").filter(function() { 
    return this.value === "banana"; 
}); 

Ayrıca bakınız: jQuery 1.9.1 property selector

+0

jQuery 1.9+ kullanıyorsanız, bu doğru cevaptır. –

+0

Hayır, hala geçerli bir seçici. Sadece '.value' * property *' nin tersine 'value' * özniteliğine * göre doğru bir şekilde eşleşiyor. – BoltClock