Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery+;Rails:如何获取用户单击的按钮id_Javascript_Jquery_Ruby On Rails_Ruby - Fatal编程技术网

Javascript jQuery+;Rails:如何获取用户单击的按钮id

Javascript jQuery+;Rails:如何获取用户单击的按钮id,javascript,jquery,ruby-on-rails,ruby,Javascript,Jquery,Ruby On Rails,Ruby,我花了几个小时试图解决这个问题,并回顾了其他类似的StackOverflow问题,但似乎没有人能回答我的问题 我无法通过此错误:引用错误:未定义id。警报也不显示 $("button.btn-tag-cat").click(function(e){ e.preventDefault(); var id = $(this).prop('id'); alert(id); id.find('span').show(); }, function(){

我花了几个小时试图解决这个问题,并回顾了其他类似的StackOverflow问题,但似乎没有人能回答我的问题

我无法通过此错误:
引用错误:未定义id
。警报也不显示

  $("button.btn-tag-cat").click(function(e){
    e.preventDefault();
    var id = $(this).prop('id');
    alert(id);
    id.find('span').show();
    }, function(){
    id.find('span').hide();
  });
我尝试了以下几种方法来使用id变量,但都不起作用

$(id).find('span').show();
$("#" + id).find('span').show();
但是,当我删除警报下面的代码块时,警报会弹出,并带有属于按钮的正确id。

  $("button.btn-tag-cat").click(function(e){
    e.preventDefault();
    var id = $(this).prop('id');
    alert(id);
  });
查看部分: 按钮id引用ruby局部变量
id=”“


正如您所注意到的,错误是链接单击侦听器中的函数

为了获得id属性,可以使用jQuery
attr
函数,如:

$("button.btn-tag-cat").click(function(e) {
  e.preventDefault();
  var id = $(this).attr('id');
  alert(id);
  $('#' + id).find('span').show();
});
$(“button.btn tag cat”)。单击(函数(e){
e、 预防默认值();
var id=$(this.attr('id');
警报(id);
$('#'+id).find('span').show();
});


按此处,在您的代码中,我将美化它以查看您的错误:

$("button.btn-tag-cat").click(
  function(e) {
    e.preventDefault();
    var id = $(this).prop('id');
    alert(id);
    id.find('span').show();
  },

  function() {
    id.find('span').hide();
  }
);
请注意,第二个函数

  function() {
    id.find('span').hide(); // right here
  }
但id尚未定义

试一试


感谢您的明确响应,但是,我现在得到了以下错误:TypeError:id.find不是一个函数使用
$(id)
而不是id。id是一个字符串。使用
$('#'+id)。查找(…)
  function() {
    id.find('span').hide(); // right here
  }
  function() {
    var id = $(this).prop('id'); // this first
    id.find('span').hide();
  }