如何在jQueryselect器中使用JavaScriptvariables

我如何使用JavaScriptvariables作为jQueryselect器中的参数?

<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"/> 

基本上我想要做的就是能够隐藏id等于被点击的元素的名称的元素。

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

或者你可以做这样的事情。

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

或者你也可以给一些效果。

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

如果你想从页面中永久删除整个元素。

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

你也可以在这里使用它。

 $("#" + this.id).slideUp('slow', function (){ $("#" + this.id).remove(); }); 
 var x = this.name; $("input[id=" + x + "]").hide(); 

当你使用一个ID,这将performance更好

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

我强烈build议您更具体地使用通过button点击来隐藏元素的方法。 我会select使用数据属性。 例如

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

然后,在你的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](); }); 

现在,您可以完全控制您定位的元素以及通过HTML发生的情况。 例如,你可以使用data-target=".some-class"data-method="fadeOut"淡出一组元素。

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

也适用于ID:

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

当(有时)

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

不工作, 因为它应该 。

你甚至可以这样做:

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

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

  1. ES6string模板

    如果您不需要IE / EDGE支持,这是一个简单的方法

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

    要么

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

    这是一个名为模板string的es6function

      (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" />