Cómo cambiar la información mostrada en base a la elección de select option

stats con chris
2023-02-27
0

...

Ofrecemos dos soluciones, una usando JavaScript y la otra usando JQuery. Para personalizar la plantilla usamos Bootstrap.

Ofrecemos dos soluciones, una usando JavaScript y la otra usando JQuery. Para personalizar la plantilla usamos Bootstrap.

El funcionamiento del código aparece a continuación:

Resultado 1 contenido
Resultado 2 contenido
Resultado 3 contenido

El código lo puedes descargar de mi repositorio de Github o lo puedes copiar/pegar de JSFiddle.

Primero mostramos la solución usando JQuery y luego usando JavaScript.

1. JQuery

El código abarca 2 archivos. La plantilla HTML select-option-jquery.html se lee:

<html>
 <head> 
  <!-- bootstrap 5.2.3-->
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet">
  <!-- style sheet -->
  <link href="style.css" rel="stylesheet">
 </head>
  
 <body>
 
  <div class="container col-6 mt-4">
      <!-- select option -->
      <div>
       <select class="form-select" id="list">
        <option value="item1" selected>texto 1</option>
        <option value="item2">texto 2</option>
        <option value="item3">texto 3</option>
       </select>
      </div>
      
      <div class="p-2">
        <div id="option-item1" class="option" style="display: block;">
        Resultado 1 contenido
       </div>
       <div id="option-item2" class="option" >
        Resultado 2  contenido
       </div>
       <div id="option-item3" class="option">
        Resultado 3  contenido
       </div>
      </div>
  </div>
  
  <!-- bootstrap 5.2.3 -->
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
  <!-- jquery 3.6.3-->
  <script src="https://code.jquery.com/jquery-3.6.3.min.js"></script>

  <!-- jquery select option -->
  <script>
    $(document).ready(function() {
   
      var $my_list = $( '#list' );
      var $my_option = $( '.option' );
    
      $my_list.on( 'change', function ( e ) {
        $my_option.hide();
        $( '#option-' + this.value ).show(); //option-item1, option-item2, or option-item3
      });
    })
  </script>
    
 </body>
</html>
La hoja de estilos style.css se lee:
.option {
    display: none;
}

2. JavaScript

El código abarca un solo archivo. La plantilla HTML select-option-js.html se lee:

<html>
 <head> 
  <!-- bootstrap 5.2.3-->
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet">
 </head>
  
 <body>
 
  <div class="container col-6 mt-4">
      <!-- select option -->
      <div>
        <select class="form-select" onchange="selectFunction(this)">
          <option value="item1" selected>texto 1</option>
          <option value="item2" >texto 2</option>
          <option value="item3" >texto 3</option>
        </select>
      </div>
      
      <div class="p-2">
        <div id="option-js-item1" class="option-js" style="display: block;">
          Resultado 1 contenido
        </div>
        <div id="option-js-item2" class="option-js" style="display: none;">
          Resultado 2  contenido
        </div>
        <div id="option-js-item3" class="option-js" style="display: none;">
          Resultado 3  contenido
        </div>
      </div>
  </div>
  
  <!-- bootstrap 5.2.3 -->
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>

  <!-- javascript select option -->
  <script>
    function selectFunction(selected){
      var value = selected.value;
      let option_item = document.getElementsByClassName('option-js')
      for (var i = 0; i < option_item.length; i++ ) {
        option_item[i].style.display = 'none';
      }
      document.getElementById('option-js-'+value).style.display = 'block';
    }
  </script>
    
 </body>
</html>

Nota: Los archivos Bootstrap no son necesarios. Fueron incluidos en el código para personalizar la plantilla.

Vistas: 1 Github

stats con chris

Un escritor que aprendió a sumar

Un escritor que aprendió a sumar

Notificaciones

Recibe los nuevos artículos en tu correo electrónico

2022 © nepy

Un solo aliento

Configurar

Elige tu propio estilo

Color

Elige el modo que sea de tu agrado


Posición del Navegador

Elige el sistema de navegación


Estilo del Navegador

Elige el estilo del navegador vertical

Personalizar