1

HTMLコード:

<div id="1" class="master"></div>
<div id="2" class="slave"></div>
<div id="3" class="slave"></div>

<div id="4" class="master"></div>
<div id="5" class="slave"></div>
<div id="6" class="slave"></div>

たとえば、$('div')。click()を使用して、これらのDIV要素をクリック可能にします。

$('div').click(function() {
    var el = $(this);
    var master_id = ???;
    alert(master_id);
});

次に、クラス「slave」のDIV要素をクリックすると、クラス「master」の最も近い上位DIV要素のIDをアラートする必要があるため、DIV#5またはDIV#6をクリックすると、alerts = "4"(DIV #4)、DIV#2またはDIV#3-アラート= "1"(DIV#1)の場合。しかし、それを行う方法は?;)

4

2 に答える 2

2

更新しました:

$('div').click(function() {
    var el = $(this);
    var master_id = el.prevAll('.master').attr('id');
    alert(master_id);
});

編集:
フィルターを使用して、calss'master'でdivをクリックしたときに、イベントが発生しないようにすることもできます。

$('div').click(function(e) {
    var el =$(this);
    if (!el.is('.master')){
        var master_id = el.prevAll(".master").attr('id');
    alert(master_id);
    }
于 2009-05-18T11:09:32.827 に答える
0

私は最初はprevslaveでうまくいくと思っていましたが、いくつかのテストを行った後、次の直後に配置されていない場合は機能しないことに気付きましたslaveprevAllから最初の試合を取得することは完璧に機能しました。

デモ: http: //jsbin.com/ulipi

$('.slave').click(function() {
    var el = $(this);
    var master_id = $(el.prevAll('.master').get(0)).attr('id');
    alert(master_id);
});
于 2009-05-18T11:27:37.160 に答える