2011-02-11 23 views
10

ben:JQuery değer seçici

<button class="Delete" value="1">Delete</button> 
<button class="Delete" value="2">Delete</button> 
<button class="Delete" value="3">Delete</button> 

(bu durumda ya bir 1, 2 ya da bir 3) arasında bir değer içerir X değişkeni göz önüne alındığında, değeri karşılık gelen düğmeye gizlemek sonra do nasıl X? Anlamı

$('button').val(x).hide(); 

: "kimin değerdir x düğmesine, gizlemek"

bir şey gibi söylemek istiyorum.

cevap

34
$('button[value="' + x + '"]').hide(); 
6

Sen gerçek seçicinin o içini yapardım:

$('button[value="foo"]').hide(); 
+0

Yanlış olabilir, ancak etiketin niteliklerine erişmenin bir kısayolu olduğu için "value" olmaz mı? –

+0

Whoops. Düşünme kapasitesi biraz düşük… – Blender

+0

Hey, cevabım kendiliğinden sabitlenmiş;) – Blender

1

Bu bir XPath içine x bitiştirmek gerektirecektir, ama şu anda başka bir yolunu düşünemiyorum.

$ (düğme [value = '1']) hide();

DÜZENLEME: kaldırılmıştır @, görünüşe çok benim gibi, kullanımdan kaldırılan :)

+1

jQuery 1.2.6'dan sonra '@' düştü. ;O) – user113716

7

kendi özel seçici yazabilir (Birisinin belirtmeliyim keçe). gibi görünebilir:

(function($) { 
    $.extend($.expr[':'], { 
     val: function(elem, i, attr) { 
      return elem.value === attr[3]; 
     } 
    }); 
}(jQuery)); 

$('button:val(2)').hide(); 
0

Hatta elle düğmelere değerleri atamak zorunda değildir:

var i = 0; $('.Delete').attr('value', function() {i++; return ''+i;}); 

gördüğünüz formattaki yapacak. Artık düğmelerinizin değerleri sayıldı. Ama boşver, (! Bile değerler gerekmez) gizleyebilir yaparak 'BU düğmeye tıklandığında':

$(".Delete").click(function() { 
$(this).html("DELETED!").delay(900).slideUp(600).hide(); 
}); 

Ben animasyonun biraz ekledik. Ya da her ikisini birleştir! CIAO :)