-1

我々は持っています:

<div class="companylinks">
   <span class="current">
      <a class="welcome">Welcome!</a>
   </span>
   <span>
      <a class="ic_generalinfo">General Info</a>
   </span>
</div>

(ここでは「ようこそ」)<a>にあるのクラスを取得したい<span class="current">

var selected_tab = $('#companylinks span[class="current"]').closest('a').attr('class');
alert(selected_tab);

しかし、私は「未定義」になっています、ここでどのように最も近い()にする必要がありますか?

助けていただければ幸いです。ありがとう

4

5 に答える 5

3

closestDOM内を上に移動するだけで、下に移動することはありません。のようなものを使用することをお勧めしますchildren

コードに他のエラーがあります。現在アクセス#companylinks.companylinksているのは、IDではなくクラス名であるためです。それ以外は、エラーではありませんが、span[class="current"]と書くことができspan.currentます。

于 2012-12-03T08:23:49.833 に答える
0

.closest()関数は、最も近いではなく、最も近いを取得します。必要なものを取得するには、次のようにします。

$('a.welcome')

または、より具体的にする必要がある場合:

$('.current a.welcome')
于 2012-12-03T08:25:17.170 に答える
0

.closest()のドキュメントを読む

セット内の各要素について、要素自体をテストし、DOM ツリー内のその祖先をたどって、セレクターに一致する最初の要素を取得します。

代わりにこれを書いてください

$('.companylinks span.current').find('a').attr('class');
于 2012-12-03T08:26:28.460 に答える
0

そのアンカー要素だけが必要な場合は、次のようにできます。

$(document).ready( function() {
var selected_tab = $('.companylinks .current').find('a').attr('class');
alert(selected_tab);
});
于 2012-12-03T08:28:05.060 に答える
0

.closest()親チェーンを下るのではなく、親チェーンを上に移動します。

セレクターですべてが満たされなければならない複数の親を指定するには、それらをスペースで区切ってセレクターに個別にリストするだけです。この場合<a>、.current 内のタグをターゲットにして、次のようにそのクラスを取得できます。

$(".current a").attr("class");

または、スコープを の内部のみにしたい場合は.companylinks、これを使用できます。

$(".companylinks .current a").attr("class");

注: を使用する必要はありませんspan[class=".current"]。あなたはただ使うことができます.current

于 2012-12-03T08:30:08.140 に答える