2016-08-12 18 views
2

簡単な問題。私はjQueryセレクタの中で連結したい変数をjsに持っています。しかし、それは動作していません。エラーもポップアップしません。なにが問題ですか?変数をjQueryセレクタのテキストに正しく連結するにはどうすればいいですか?jQueryセレクタで連結する

<select class="form-control" name="taille" id="{{Product.id~'/taille'}}"> 
<option>Taille</option> 
<option>1</option> 
<option>2</option> 
</select> 

とjQueryで選択セレクト

$('select[name="taille"]').focusin(function(){ 
    var idElement = $(this).attr('id'); 
    var arr = idElement.split('/'); 

のIDを取得するために、このコードを使用し、それは非常に良い仕事ですが、私はidで選択し、選択のためのオプションを追加ワンの問題は、私は多くのコードを試してみていません1つの例:

$('#'+arr[0]+'/taille') 
    .find('option') 
    .remove() 
    .end() 
    .append('<option value="whatever">text</option>') 
    .val('whatever') 
; 

ご協力いただきありがとうございます。

+0

使用 '$( '[名= "タイユ"]を選択')' – Tushar

答えて

4

あなたが\\を使用して、メタ文字(/)をエスケープする必要がありattribute equals selector

$('[id="' + arr[0] + '/taille"]') 


かを使用してください。

$('#' + arr[0] + '\\/taille') 

チェックdocumentation of jQuery selectors\\

名のリテラル一部として(例えば!"#$%&'()*+,./:;<=>[email protected][\]^``{|}~など)のメタ文字のいずれかを使用するには、それは2つのバックスラッシュを使ってエスケープする必要があります。たとえば、id="foo.bar"の要素は、セレクタ$("#foo\\.bar")を使用できます。 W3C CSS仕様にはcomplete set of rules regarding valid CSS selectorsが含まれています。 Mathias Bynensのブログ記事CSS character escape sequences for identifiersにも便利です。


私はあなたが独自のidを使用して同じ要素を取得しようとしていると思います。 yesの場合は、同じ要素を指す使用thisを使用する必要はありません。削除して再度追加する必要はありませんが、既存のものを削除するhtml()を使用してください。

$('select[name="taille"]').focusin(function(){ 
    $(this).html('<option value="whatever" selected>text</option>'); 
}); 
+0

としては私に言った。HTML( '<オプション値= "何でも">テキスト ').val(' 何') '.find( 'option')に答えてください。 .remove() .end() .append' ==>' .html() '。 – Tushar

関連する問題