web-dev-qa-db-ja.com

クリックされた要素のjQuery子

クリックイベントが関連付けられているリンクのリストを取得しました。子AリンクからIDを取得する必要があります。下の例で、最初のリスト要素をクリックした場合、Googleを再調整する必要があります。

私はもう試した '$this a'ですが、構文を完全に理解することはできません。

$("ul li").click(function(event){
  $("input").val($(this).html());             
});
<ul>
    <li><a href="http://www.google.com" id="google">Google</a>
</ul>
15
Tom

サンプルHTMLは表示されませんが、

$(this).find('a:first').attr('id')

それを行うでしょう(それが意図したものでない場合は、a:firstセレクターを修正してください)

thisイベントを発生させた要素を参照します

49
smoothdeveloper

コードを少しすっきりさせるには、トリガーを次のような関数にバインドします(ULにIDを指定して、そのUL内の要素のみに固有になるようにすることをお勧めします)。

$('ul li').bind('click', getAnchorId);

呼び出された関数(getAnchorId)は、クリックされた要素(ul li)の子要素(a)のID属性を取得し、それを変数(anchorId)に適用し、正しい情報を取得することを示すために結果を入れましたアラート。

function getAnchorId() {
    var anchorId = $(this).children('a').attr('id');
    alert(anchorId);
}

今、あなたはその変数であなたが望むことを何でもすることができます

お役に立てれば :)

4
Wayne Austin

children メソッドを使用できます:

$(this).children('a').eq(0).attr('id');

構文についてはわかりませんが、このようなものが機能するはずです。

2
mbillard