Co oznacza składnia $ („selektor”, ta)? Mam ogólny pomysł, ale nie jestem całkowicie pewien
JoshWillik
14
@JoshWillik z $("selector", this)tobą znajdujesz wszystkie selectorelementy w thiskontekście. Pisanie $("selector", this)jest prawie takie samo jak $(this).find('selector')
Bellash
8
@JoshWillik: ponieważ $()jest to pseudonim jQuery(), dokumentację można znaleźć tutaj: api.jquery.com/jQuery Podpis podany jest oczywiście jQuery( selector [, context ] ). @Bellash: jeśli jest „prawie taki sam”, jaka jest różnica? A co jest szybsze? Wolę, .find()ponieważ jest to więcej OO IMO ...
Adrian Föder
7
Jak sprawdzić w przypadku wielokrotnego wyboru?
Hemant_Negi
3
@ AdrianFöder Dla ciebie i innych osób, które go szukają, .find()jest około 10% szybszy zgodnie z tą odpowiedzią: stackoverflow.com/a/9046288/2767703
Powyższe rozwiązanie działa idealnie, ale wybieram dodanie następującego kodu, aby uzyskać gotową opcję kliknięcia. Pozwala uzyskać wybraną opcję, nawet jeśli ta wybrana wartość nie uległa zmianie. (Testowane tylko z Mozillą)
Powiązanie ze optionzdarzeniami jest ryzykowną propozycją, szczególnie na urządzeniach mobilnych. Na przykład Webkit nie obsługuje tego zdarzenia poprawnie: bugs.chromium.org/p/chromium/issues/detail?id=5284
Ian Kemp
Ok fajnie! Jak powiedziałem, drugie rozwiązanie nie jest obsługiwane w wielu przeglądarkach!
Bellash
15
Delegowana alternatywa
Jeśli ktoś używa delegowanego podejścia do swojego detektora, użyj e.target(będzie odnosił się do elementu select).
$('#myform').on('change','select',function(e){var val = $(e.target).val();var text = $(e.target).find("option:selected").text();//only time the find is requiredvar name = $(e.target).attr('name');}
selectedOptionsnie jest dostępny we wszystkich przeglądarkach.
Bernhard Döbler,
@ BernhardDöbler które? jakieś źródło?
1.44mb,
1
Skopiowałem twój kod do IE 11 i dostałem błąd. Skończyło się z this.options[ this.options.selectedIndex ]. Mozilla mówi, że jest obsługiwany przez Firefox od 26, IE Brak wsparcia.
Bernhard Döbler,
6
<selectid="selectId"><optionvalue="A">A</option><optionvalue="B">B</option><optionvalue="C">C</option></select>
$('#selectId').on('change', function () {
var selectVal = $("#selectId option:selected").val();
});
Najpierw utwórz select option. Po tym użyciu jquerymożesz uzyskać bieżącą wybraną wartość, gdy użytkownik zmieni select optionwartość.
Odpowiedzi:
źródło
$("selector", this)
tobą znajdujesz wszystkieselector
elementy wthis
kontekście. Pisanie$("selector", this)
jest prawie takie samo jak$(this).find('selector')
$()
jest to pseudonimjQuery()
, dokumentację można znaleźć tutaj: api.jquery.com/jQuery Podpis podany jest oczywiściejQuery( selector [, context ] )
. @Bellash: jeśli jest „prawie taki sam”, jaka jest różnica? A co jest szybsze? Wolę,.find()
ponieważ jest to więcej OO IMO ....find()
jest około 10% szybszy zgodnie z tą odpowiedzią: stackoverflow.com/a/9046288/2767703Możesz użyć metody wyszukiwania jQuery
Powyższe rozwiązanie działa idealnie, ale wybieram dodanie następującego kodu, aby uzyskać gotową opcję kliknięcia. Pozwala uzyskać wybraną opcję, nawet jeśli ta wybrana wartość nie uległa zmianie. (Testowane tylko z Mozillą)
źródło
option
zdarzeniami jest ryzykowną propozycją, szczególnie na urządzeniach mobilnych. Na przykład Webkit nie obsługuje tego zdarzenia poprawnie: bugs.chromium.org/p/chromium/issues/detail?id=5284Delegowana alternatywa
Jeśli ktoś używa delegowanego podejścia do swojego detektora, użyj
e.target
(będzie odnosił się do elementu select).JSFiddle Demo
źródło
Uważam to za krótsze i czystsze. Poza tym możesz iterować wybrane elementy, jeśli jest ich więcej niż jeden;
źródło
selectedOptions
nie jest dostępny we wszystkich przeglądarkach.this.options[ this.options.selectedIndex ]
. Mozilla mówi, że jest obsługiwany przez Firefox od 26, IE Brak wsparcia.Najpierw utwórz
select option
. Po tym użyciujquery
możesz uzyskać bieżącą wybraną wartość, gdy użytkownik zmieniselect option
wartość.źródło
źródło
Kolejny i krótki sposób na uzyskanie wartości wybranej wartości,
źródło
Zobacz oficjalną dokumentację API https://api.jquery.com/selected-selector/
To dobre działa:
i
i być łatwym w wyborze
źródło
Możesz użyć tego zdarzenia zmiany wyboru jquery, aby uzyskać wybraną wartość opcji
Na demo
źródło