/ / Ako použiť hodnotu rozbaľovacej ponuky vybraného poľa pri načítaní stránky na skrytie prvku pomocou JQuery? - jQuery, výbery jQu

Ako použiť voľbu rozbaľovacej ponuky vybratého poľa na zaťaženie stránky na skrytie prvku pomocou JQuery? - jquery, jquery-selectors

Skrývam niektoré prvky na základe aktuálnej hodnoty vybraného poľa s nasledujúcim JQuery:

$(".select").change(function() {
$(this).parent().siblings("*[class*=hide-if-]").show();
$(this).parent().siblings(".hide-if-" + $(this).val()).hide();
});

A funguje to dobre. (prvky majú dynamické triedy, napríklad „hide-if-123“)

Pri načítavaní stránky by som však tiež rád skryl príslušné prvky. Mal by som použiť inú funkciu (namiesto „zmeny“)?

Alebo môžete dať kód mimo funkcie tiež, takže to vykonáva na zaťaženie a na zmenu? Vyskúšal som toto:

$(".select").parent().siblings(".hide-if-" + $(".select").val()).hide();

ale nefunguje to. Predpokladám, že mám túto časť $(".select").val() zle.

Je dôležité, aby získala hodnotu rovnakého výberového poľa ako "select" na začiatku riadku. Skúsil som tiež:

$(".select").parent().siblings(".hide-if-" + $(this).val()).hide();

ale stále nie je šťastie.

Ďakujeme za vašu pomoc!

odpovede:

2 pre odpoveď č. 1

Ak chcete vykonať logiku zmien pri načítaní stránky, môžete jednoducho spustiť change event.

$(function() {
$(".select").trigger("change");
});

1 pre odpoveď č. 2

Môžete iba spustiť obsluhu zmien, ktorú ste už vytvorili:

$(".select").change(function() {
$(this).parent().siblings("*[class*=hide-if-]").show();
$(this).parent().siblings(".hide-if-" + $(this).val()).hide();
}).change();

povolania .change() bez parametrov je ekvivalentom .trigger("change").

Aj keď som povedal, že nevidím dôvod, prečo váš kód:

$(".select").parent().siblings(".hide-if-" + $(".select").val()).hide();

nefungovalo by - existujú všetky prvky, keď sa stránka prvýkrát načíta?


0 pre odpoveď č. 3

pridať spoločnú triedu do všetkých prvkov a pomocou css ich skryť

 .hidden-class{ display:none}

Prínosom nie je, nemusíte čakať, kým sa skript spustí, aby sa prvky skryli