2011-02-11 11 views
10

私は:値(この場合は1、2または3のいずれか)を含む変数Xを考えるjQueryの値セレクタ

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

を、次にどのようにの値に対応するボタンを非表示にしますバツ?

私のような何か言いたい:意味

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

: "値xは、非表示ボタン"。

答えて

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

あなたは、実際のセレクタの内側にそれを行うだろう:

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

私は間違っているかもしれませんが、これはタグの属性にアクセスするためのショートカットであるため "値"ではありませんか? –

+0

おっと。思考能力は少し低いです... – Blender

+0

ちょっと、私の答えは魔法のように修正されました;) – Blender

1

これは、XPathにXを連結する必要だろうが、私は今、別の方法を考えることはできません。

$(button [value = '1'])。hide();

EDIT:ずっと私のような明らかに非推奨削除@、:)

+1

'@'はjQuery 1.2.6の後に削除されました。 ; o) – user113716

7

あなたは(私は、誰かがそれを言及すべきであると感じた)独自のカスタムセレクタを書くことができます。次のようになります。

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

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

あなたも、手動でボタンに値を割り当てる必要はありません。

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

はあなたFOUそれを行います。これで、ボタンの値がカウントされました。 しかし、用事は、(!あなたも値を必要としない)あなたが隠すことができることによって「これは、ボタンをクリックした」:

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

が、私はアニメーションのビットを追加しました。 または両方を組み合わせてください! CIAO :)