3

特定のIDを持つdivの子孫であるアンカータグを選択しようとしています。たとえば#mydiv1、、、です。#mydiv2#mydiv3

myFunction = function() {    
  var theDivs = $("#mydiv1, #mydiv2, #mydiv3");    
  theDivs.hover(function(e){    
      $(this+" a:link").css("color","#99ccff");
  },function(e){
      $(this+" a:link").css("color","#848484");        
  });    
}

しかし、セレクター$(this+" a:link")は何も選択していないようです。

この選択の適切な構文について誰かが考えていますか?

4

5 に答える 5

10

試す$(this).find("a:link")

編集:追加情報

$(this + "query")タイプを混ぜるとき。jQueryのセレクターパラメータは、クエリ文字列またはオブジェクトのいずれかを探しています。'this'が文字列に変換されると、有効なセレクター構文にはなりません。たとえば、次のような ことができます。$("." + this.className + "[query]")

于 2009-04-23T19:09:48.107 に答える
7

コンテキストの要素を指定できます。次のように機能するはずです。

$("a:link", this).

ノードで始まるアンカーを検索しthisます。

于 2009-04-23T19:16:23.597 に答える
1

または試してみてください$(this).children("a:link")

http://api.jquery.com/children/

于 2009-04-23T19:21:58.700 に答える
0

上記の方法のいずれかが機能するはずですが、「:link」が有効な構文であるというjQueryセレクター構文には何も表示されません。上記の方法がうまくいかない場合は、おそらくそれを省略してみてください。

また、元のメソッドが機能しなかった理由は、「this」がDOM要素であり、コード内の文字列ではないためです。前述のように、「$(this)」を実行するか、検索コンテキストとしてDOM要素を使用することで、jQueryオブジェクトにすることができます。

于 2009-04-23T19:24:16.980 に答える
0

.each()を使用してdivを反復処理し、子セレクターを使用します。

  myFunction = function() {    
      var theDivs = $("#mydiv1, #mydiv2, #mydiv3");    
  theDivs.each(function(){    
      $(this > 'a').css("color","#99ccff");
  });    
}

そのようです。

于 2009-04-23T19:30:32.143 に答える