4

jquery/javascriptの「.buttonleft0」内でボタンがクリックされたときに、このレイアウトから親div ID(つまり「Bakerloo」)を見つけようとしています。

<div id='Bakerloo' class='box'>bakerloo<p></p><span class='buttons'>
<span class='buttonleft0'><button onClick='up()'><span class='icon icon10'></span>
</button>
</span><span class='buttonleft'></span><span class='buttonright'></span></span>
<div class='comingup'></div>
<div class='more'></div></div>

私が試してみました:

$(this).parent('id');

しかし、これは「未定義」を返すだけです。

4

7 に答える 7

5
$(this).closest('div').attr('id')

これがあなたの望むものだと思います

于 2013-03-09T15:48:30.603 に答える
4

この関数はjQueryオブジェクトを返すため、次のようにその属性のいずれparent()かにを使用する必要があります。attr()

$(this).closest().attr('id');

編集:さらに詳しく調べると、ボタンはの直接の子ではないように見えるdivため、closest()関数を使用する必要があります。

于 2013-03-09T15:46:39.277 に答える
3

まっすぐなJavascriptは常に私にとってはうまくいきます。

<div id='Bakerloo' class='box'>
    bakerloo<p></p>
    <span class='buttons'>
        <span class='buttonleft0'>
        <button onClick='alert(this.parentNode.parentNode.id)'>
             <span class='icon icon10'></span>
        </button>
        </span>
        <span class='buttonleft'></span>
        <span class='buttonright'></span>
    </span>
    <div class='comingup'></div>
    <div class='more'></div>
</div>    
于 2013-03-11T19:35:36.060 に答える
1

コード自体にはほとんどエラーがないため、正しいエラーは次のとおりです。

HTML

<div id='Bakerloo' class='box'>bakerloo<p></p><span class='buttons'>
<span class='buttonleft0'><button><span class='icon icon10'>Click here</span>
</button>
</span><span class='buttonleft'></span><span class='buttonright'></span></span>
<div class='comingup'></div>
<div class='more'></div></div>

JQuery

jQuery(document).ready(function($){
    $("button").on('click',function(){
       alert($(this).closest('div').attr('id'));
    });
});

ここにフィドルがありますhttp://jsfiddle.net/cpeeyush/ydk4e/

于 2013-03-09T16:04:52.837 に答える
1

これを試して:

$(this).parent().attr("id");
于 2013-03-09T15:49:18.023 に答える
0

これを試して:

$(this).closest('div[id]')

于 2013-03-09T15:56:19.063 に答える