2017-01-04 3 views
0

セレクタは$("a.3")であると予想しましたが、そうではありませんでした。セレクタでの連結

var giftId = '3'; 
$("a."+giftId).click(function() { 
    ... 
}); 

私はこのようにできませんか?

クラス名がない場合でも、それはまだ

<a class="gift6"... 

    var giftId = '6'; 
    $("a.gift"+giftId).click(... 

答えて

2

を連結していない数字で始まりますが、これは動作していない理由を説明するだろう数、で始まるクラスを持つことはできません。 CSSで

https://www.w3.org/TR/CSS2/syndata.html#value-def-identifier

、文字のみ[-ZA-Z0-9]およびISO 10646 文字U + 00A0を含むことができる(要素名、クラス、および セレクタ内のIDを含む)識別子ハイフン( - )およびアンダースコア (_); は、数字、2つのハイフン、またはハイフンで始まり、数字で に続いています。識別子には、エスケープ文字と数値コードとして ISO 10646文字を含めることもできます(次の項目を参照)。たとえば、 という識別子 "B & W?" 「B \ & W?」と書かれています。または「B¥26 W¥3F」と入力します。

+0

この「var giftId = '6'」はどうですか? $( "a.gift:" + giftId).click(... \t '?これはまだ連結されておらず、クラス名は数字 – thinker

+0

で始まっていません@thinker' 6'は有効な疑似クラスではありません。それを行うには – Curt

+0

@thinkerあなたの要素にデータ属性を持たせることをお勧めします。 'data-giftid'としましょう。' $( "a.gift [data-giftid =" + giftId + "]") ' – Curt