Javascript .show()在jQuery中不起作用

Javascript .show()在jQuery中不起作用,javascript,jquery,Javascript,Jquery,每个列表元素中都有一个文本输入元素。我想显示目标列表元素的输入元素 首先我定义allEl,它选择所有列表元素,现在是一个数组。然后我将所有allEl元素设置为类名“”。然后我选择事件的目标元素。我还定义了seel,它将用于查找目标列表元素的索引号。然后我循环遍历所有列表元素并检查哪一个是目标元素。我将目标元素的类设置为“active”,并记录该列表元素的索引号。然后我隐藏了所有的输入元素。然后我找到所有隐藏的输入元素,并将$hid分配给它,现在它将成为一个数组。然后,我使用selEl显示目标列表

每个列表元素中都有一个文本输入元素。我想显示目标列表元素的输入元素

首先我定义allEl,它选择所有列表元素,现在是一个数组。然后我将所有allEl元素设置为类名“”。然后我选择事件的目标元素。我还定义了seel,它将用于查找目标列表元素的索引号。然后我循环遍历所有列表元素并检查哪一个是目标元素。我将目标元素的类设置为“active”,并记录该列表元素的索引号。然后我隐藏了所有的输入元素。然后我找到所有隐藏的输入元素,并将$hid分配给它,现在它将成为一个数组。然后,我使用selEl显示目标列表元素中的输入元素

但由于某些原因,输入元素将不会显示,并且出现类型错误,表示$hid[seel].show不是函数

var allEl = document.getElementsByTagName('li');
for(var i = 0; i < allEl.length; i++) {
  allEl[i].className = '';
}
var target = e.target;
var selEl;
$("input:text").hide();
for(var i = 0; i < allEl.length; i++) {
  if(target === allEl[i]) {
    target.className = 'active';
    selEl = i;
  }
}
var $hid = $("input:text:hidden");
$hid[selEl].show();
var allEl=document.getElementsByTagName('li');
对于(变量i=0;i
您应该将最后一行更改为:

$hid.eq(selEl).show();
.eq()
是返回
jQuery
对象的
jQuery
方法


[]
符号返回普通DOM节点。DOM节点没有
show()
方法。

$hid[seel]是元素本身$('span').eq(seel)将为您提供位于seel位置的jquery包装元素

以本页为例

$('span') ==> n.fn.init[163]
$('span')[1] ==> <span class=​"rep-score">​1,806​</span>​
$('span').eq(1) ==> [span.rep-score]
$('span')==>n.fn.init[163]
$('span')[1]==>​1,806​​
$('span').eq(1)==>[span.rep得分]

您试图在元素上使用jQuery方法.show(),而不是在表示该元素的jQuery对象上使用该方法。

谢谢您的回答!