Javascript 在与子元素映射时,如何检查元素是否为父元素的第一个子元素?

Javascript 在与子元素映射时,如何检查元素是否为父元素的第一个子元素?,javascript,jquery,html,Javascript,Jquery,Html,我正在映射特定容器中的所有textarea。我需要检查每个textarea是否是父元素的第一个元素($('.services'))。如果没有,则向其添加一个类 页面中有几个.services类,在页面加载后添加。对于每个.services类,只需显示第一个textarea子类。每个.services类都有许多文本区域 $('textarea').map(function (i) { /* if not first textarea of parent element $('.serv

我正在映射特定容器中的所有
textarea
。我需要检查每个textarea是否是父元素的第一个元素(
$('.services')
)。如果没有,则向其添加一个类

页面中有几个
.services
类,在页面加载后添加。对于每个
.services
类,只需显示第一个textarea子类。每个
.services
类都有许多文本区域

$('textarea').map(function (i) {
      /* if not first textarea of parent element $('.services') */
      $(this).addClass('hide');
});
如何做到这一点

$(".services").find("textarea:eq(0)");
参考和


引用和

为什么不隐藏所有的
.services
,然后只显示第一个子项

$('.services').hide();
$('.services:first-child').show();

为什么不隐藏所有
.services
,然后只显示第一个子项

$('.services').hide();
$('.services:first-child').show();
尝试使用
.each()

$('.services textarea').each(function(){
    var indx = $(this).index(); 
    if(indx != 0) {
        $(this).addClass('hide');
    }
}); 
请参见此

尝试使用
.each()

$('.services textarea').each(function(){
    var indx = $(this).index(); 
    if(indx != 0) {
        $(this).addClass('hide');
    }
}); 
看这个

这个应该可以

$('.services').each(function(){
   $(this).children('textarea').addClass('hide');
   $(this).children('textarea:first').removeClass('hide').show();
})
这应该可以做到

$('.services').each(function(){
   $(this).children('textarea').addClass('hide');
   $(this).children('textarea:first').removeClass('hide').show();
})
试试这个

$('.services').each(function(){
  if($(this).not(':first-child')){
    $(this).addClass('hide');
  }
}
或:

或:

试试这个

$('.services').each(function(){
  if($(this).not(':first-child')){
    $(this).addClass('hide');
  }
}
或:

或:

试试这个:

$('.services textarea').each(function(){
    var textarea = $(this);
    if(!textarea.is(':first')) {
        $(this).addClass('hide');
    }
}); 
试试这个:

$('.services textarea').each(function(){
    var textarea = $(this);
    if(!textarea.is(':first')) {
        $(this).addClass('hide');
    }
}); 

gt()
根据元素在jQuery集合中的索引(选定元素)而不是它们的父级/chlid关系筛选元素。关闭它的原因是什么..?告诉我firstI downvoted。正如我已经编写的
:gt()
在这里不起作用。它只是从集合中排除第一个选定的元素。您看到我的第一个ans了吗?我还为
gt
提供了fiddle。index()
也会做同样的事情
gt()
根据jQuery集合中的元素索引过滤元素(选定的元素)不是他们的父母/孩子的关系。拒绝的原因是什么。?先告诉我我投了反对票。正如我已经编写的
:gt()
在这里不起作用。它只是从集合中排除第一个选定的元素。您看到我的第一个ans了吗?我还为
gt
提供了小提琴。??
.index()
也会做同样的事情。我可能会选择
.services>textarea
谢谢。它工作得很好。出于curosity的考虑,我正在做这个,当父元素中的textarea之前存在其他元素时,我们如何解决这个问题?请检查一下。@JustinJohn,不客气。一个选项是使用
.prevAll()
方法。我可能会选择
.services>textarea
谢谢。它工作得很好。出于curosity的考虑,我正在做这个,当父元素中的textarea之前存在其他元素时,我们如何解决这个问题?请检查一下。@JustinJohn,不客气。一个选项是使用
.prevAll()
方法。