variable llamar javascript jquery

javascript - llamar variables jquery



Cómo usar variables de JavaScript en jquery selectores (6)

  1. Plantilla de cadena ES6

    Aquí es una manera simple si no necesita soporte IE / EDGE

    $(`input[id=${x}]`).hide();

    o

    $(`input[id=${$(this).attr("name")}]`).hide();

    Esta es una característica de es6 llamada cadena de plantilla

    (function($) { $("input[type=button]").click(function() { var x = $(this).attr("name"); $(`input[id=${x}]`).toggle(); //use hide instead of toggle }); })(jQuery);

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="text" id="bx" /> <input type="button" name="bx" value="1" /> <input type="text" id="by" /> <input type="button" name="by" value="2" />

  1. Concatenación de cadenas

    Si necesita soporte IE / EDGE use

    $("#" + $(this).attr("name")).hide();

    (function($) { $("input[type=button]").click(function() { $("#" + $(this).attr("name")).toggle(); //use hide instead of toggle }); })(jQuery);

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="text" id="bx" /> <input type="button" name="bx" value="1" /> <input type="text" id="by" /> <input type="button" name="by" value="2" />

  1. Selector en DOM como atributo de datos

    Esta es mi forma preferida, ya que hace que el código sea realmente SECO

    // HTML <input type="text" id="bx" /> <input type="button" data-input-sel="#bx" value="1" class="js-hide-onclick"/> //JS $($(this).data("input-sel")).hide();

    (function($) { $(".js-hide-onclick").click(function() { $($(this).data("input-sel")).toggle(); //use hide instead of toggle }); })(jQuery);

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="text" id="bx" /> <input type="button" data-input-sel="#bx" value="1" class="js-hide-onclick" /> <input type="text" id="by" /> <input type="button" data-input-sel="#by" value="2" class="js-hide-onclick" />

¿Cómo uso las variables de javascript como un parámetro en un selector de jquery?

<script type="text/javascript"> $(function(){ $("input").click(function(){ var x = $(this).attr("name"); $("input[id=x]").hide(); }); }); </script> <input type="text" id="bx"/><input type="button" name="bx"/> <input type="text" id="by"/><input type="button" name="by"/>

Básicamente, lo que quiero hacer es poder ocultar el elemento que tiene id que es igual al nombre del elemento que se está haciendo clic.


$("#" + $(this).attr("name")).hide();


$("input").click(function(){ var name = $(this).attr("name"); $(''input[name="'' + name + ''"]'').hide(); });

También funciona con ID:

var id = $(this).attr("id"); $(''input[id="'' + id + ''"]'').hide();

cuando, (a veces)

$(''input#'' + id).hide();

no funciona, como debería .

Incluso puedes hacer ambas cosas:

$(''input[name="'' + name + ''"][id="'' + id + ''"]'').hide();


var name = this.name; $("input[name=" + name + "]").hide();

O puedes hacer algo como esto.

var id = this.id; $(''#'' + id).hide();

O puedes dar algún efecto también.

$("#" + this.id).slideUp();

Si desea eliminar el elemento completo de forma permanente de la página.

$("#" + this.id).remove();

También puedes usarlo en esto también.

$("#" + this.id).slideUp(''slow'', function (){ $("#" + this.id).remove(); });


var x = $(this).attr("name"); $("#" + x).hide();


var x = this.name; $("input[id=" + x + "]").hide();

Como está usando una identificación, esto funcionaría mejor

$("#" + x).hide();

Recomiendo ser más específico con su enfoque para ocultar elementos mediante clics de botón. Optaría por usar atributos de datos en su lugar. Por ejemplo

<input id="bx" type="text"> <button type="button" data-target="#bx" data-method="hide">Hide some input</button>

Luego, en tu JavaScript

// using event delegation so no need to wrap it in .ready() $(document).on(''click'', ''button[data-target]'', function() { var $this = $(this), target = $($this.data(''target'')), method = $this.data(''method'') || ''hide''; target[method](); });

Ahora puede controlar completamente a qué elemento se dirige y qué le sucede a través del HTML. Por ejemplo, puede usar data-target=".some-class" data-method="fadeOut" data-target=".some-class" y data-method="fadeOut" para data-method="fadeOut" una colección de elementos.