如何减少我在jQuery函数中使用的子项数量?

Jos*_*ith 17 html css jquery children

我觉得我必须.children()在一些jQuery函数中使用太多.

这是我的HTML:

<div class="goal-small-container">
  <div class="goal-content">
    <div class="goal-row">
      <span class="goal-actions">
Run Code Online (Sandbox Code Playgroud)

这是我的jQuery:

$('.goal-small-container').hover(function() {
  $(this).children('.goal-content').children('.goal-row').children('.goal-actions').css({visibility: "visible"});
}, function () {
  $(this).children('.goal-content').children('.goal-row').children('.goal-actions').css({visibility: "hidden"});
});
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?如何减少我在jQuery函数中使用的子项数量?

med*_*iev 27

.find('.goal-content .goal-row .goal-action').whatever()
Run Code Online (Sandbox Code Playgroud)

或更简单地说:

.find('.goal-action').whatever()
Run Code Online (Sandbox Code Playgroud)

  • @rockinthesixstring - 派对pooper (13认同)
  • meder - MJ只是令人毛骨悚然!; O) (5认同)
  • 对于那些迟到的人来说,迈克尔杰克逊显然与孩子无关. (3认同)
  • @alex,或者mjQueery (3认同)
  • @rockinthesixstring如果它生成了页面视图并且学到了更多的人,那么它是有建设性的. (2认同)

Rei*_*gel 14

你听说过.find()吗?

$('.goal-small-container').hover(function() {
  $(this).find('.goal-actions').css({visibility: "visible"});
}, function () {
  $(this).find('.goal-actions').css({visibility: "hidden"});
});
Run Code Online (Sandbox Code Playgroud)

  • 我没有!这*正是我所寻找的.还要欣赏我认为的编辑. (2认同)

Ian*_*nry 9

代替

$(this).children('.goal-content').children('.goal-row').children('.goal-actions').css({visibility: "visible"});
Run Code Online (Sandbox Code Playgroud)

您可以使用:

$(this).find('> .goal-content > .goal-row > .goal-actions').css({visibility: "visible"});
Run Code Online (Sandbox Code Playgroud)

对于完全相同的含义.但是,如果不存在模糊的可能性(.goal-actions只会出现在标记的结构中),您可以使用find('.goal-actions').