18

.children()一部のjQuery関数で使用しすぎているように感じます。

これが私のHTMLです:

<div class="goal-small-container">
  <div class="goal-content">
    <div class="goal-row">
      <span class="goal-actions">

そしてこれが私の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"});
});

もっと良い方法はありますか?jQuery関数で使用する子の数を減らすにはどうすればよいですか?

4

5 に答える 5

27
.find('.goal-content .goal-row .goal-action').whatever()

またはもっと簡単に:

.find('.goal-action').whatever()
于 2010-10-04T01:13:53.220 に答える
14

聞いたことがあります.find()か?

$('.goal-small-container').hover(function() {
  $(this).find('.goal-actions').css({visibility: "visible"});
}, function () {
  $(this).find('.goal-actions').css({visibility: "hidden"});
});
于 2010-10-04T01:13:41.557 に答える
9

それ以外の

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

次を使用できます。

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

まったく同じ意味です。ただし、それがあいまいになる可能性がない場合は(.goal-actionsマークアップのその構造にのみ表示されます)、を使用できますfind('.goal-actions')

于 2010-10-04T01:13:50.307 に答える
1

あなたはただ使うことができます:

$('.goal-small-container').hover(function() {
   $(this).find('goal-actions').show();
}, function() {
   $(this).find('goal-actions').hide();
});
于 2010-10-04T01:19:30.083 に答える
0

2番目に.show()と.hide()を使用してみません<div>か?そして、最初はそれらを非表示にするか何かを表示させます。

于 2010-10-04T01:15:11.127 に答える