2011-11-22 20 views
5

W mojej aplikacji mam formularz, którego elementy są nazwane przy użyciu pewnej konwencji, tj. Są ścieżkami, których części są oddzielone znakiem ~.jQuery, użyj ~ jako części identyfikatora - jak?

Teraz potrzebuję uzyskać dostęp do jednego z nich w jQuery przez id, ale nie. Najwyraźniej jQuery traktuje to jako rzecz o nazwie #prev ~ sibling.

Czy istnieje sposób na uniknięcie znaku ~ w funkcji jQuery?

Oto przykład tego, co mój kod wygląda następująco:

<select id="a~b~c"> 
    <option value='1'>one</opiton> 
</select> 

<script> 
    $("#a~b~c").change(function(){ 
    alert('a'); 
    }); 
</script> 

Odpowiedz

3

spróbować

$("#a\\~b\\~c").change(function(){ 
    alert('a'); 
    }); 
2

Można użyć \\http://api.jquery.com/category/selectors/

$('#a\\~b\\~c') 

Lub, jeśli ucieczka jest problematyczne, można użyć: http://api.jquery.com/attribute-equals-selector/

$('[id="a~b~c"]') 

Fiddle Demo

+0

Albo to, albo podwójny backslash (\\\), jak się okazało. – Ibolit

+0

@ibolit To prawda, dodałem, że z linkiem do artykułu na ten temat. – StuperUser

+0

Nawiasem mówiąc, wariant $ ('[id] = "..."') nie zadziałał dla mnie ... :( – Ibolit

Powiązane problemy