0

HTML:

<div class="my_1"></div>

<div class="my_big">     
      <div class="small" id="id_1"></div>      
      <div class="small" id="id_2"></div>     
      <div class="small" id="id_3"></div>      
      <div class="small" id="id_4"></div>      
</div>

JavaScript:

var css_scope=$(".my_big");
var next_div=$(".my_1").nextAll('.small',css_scope).first();

console.log(" \n next div = "+ next_div.attr('id'));

コンソールが表示されますundefinedmy_bigしかし、html から divを除外しvar next_div、javascript で次のように定義すると:

var next_div=$(".my_1").nextAll('.small').first();

期待通りの出力が得られます。

nextAll()前述の css スコープを使用するにはどうすればよいですか?

4

3 に答える 3

0

.nextAll次のすべての兄弟を検索するために使用されます。.smallの結果からを検索する必要がありますnextAll

var next_div=$(".my_1").nextAll('.my_big').find('.small').first();
于 2012-11-04T10:55:18.387 に答える
0

彼らは兄弟ではないため、使用することはできません。次のセレクターを使用してアクセスできます。.smallmy_1nextAll()

// Get the first element matching ".small" inside an element matching ".my_big"
// that comes immediately after an element matching ".my_1"

var next_div = $('.my_1 + .my_big > .small:first')​;

このデモを確認してください: http://jsfiddle.net/q6XKR/

于 2012-11-04T11:01:05.400 に答える
0

divの最初の要素にアクセスする場合は、シーンmy_bigに持ち込む必要はありません。my_1

var next_div = $('.my_big').find('.small').first();

console.log(" \n next div = "+ next_div.attr('id'));

jQuery で要素をトラバースすることについて、ある程度明確になることを願っています。

于 2012-11-04T11:01:28.537 に答える