0

入力後の最初のdivを切り替えたい

出来ますか?

やってみた

<script type="text/javascript">
function spoiler() {
    $(this).next().show();
}
</script>

<div>
       <input value="Show/Hide" style="" onclick="spoiler();" type="button"/>
</div>
<div style="display:none;">
    Text
</div>

クラスまたは ID を使用できない

4

6 に答える 6

0

グローバル変数「this」を現在使用している方法で参照しています。DIV 自体を渡すと、そこからかなり簡単に作業できます。

<div>
       <input value="Show/Hide" style="" onclick="spoiler(this)" type="button"/>
</div>
<div style="display:none;">
    Text
</div>

次に、JS 関数は次のようになります。

function spoiler(div1) {
    $(div1).parent().next().toggle();
}

それがあなたのためにそれをすることを願っています。

于 2012-11-14T00:31:21.457 に答える
0

これを試してみてください:

$(this).parent().next().show();
于 2012-11-14T00:16:17.483 に答える
0

以下を使用する必要があります。

$(this).parent().next().show();

<div />すでに内部にいるため、ツリーを 1 か所上に移動する必要があります。

于 2012-11-14T00:16:21.407 に答える
0

DOM 内の正確な場所がわかっている場合は$('div:nth-child(2)')、要素を選択するなどの操作を行うことができますが、これは非常に脆弱です。マークアップを変更すると、スクリプトが壊れる可能性があります。

于 2012-11-14T00:16:42.753 に答える
0

next() は、次の親 div ではなく、div 内の次の要素を参照しているため

parent().next().show() を使用する

于 2012-11-14T00:16:43.963 に答える
0

$(this)ボタンを参照していなかったため、コードが機能していませんでした。また、.next()存在しないボタンの後の要素を探しました。そのボタンの親の後の要素を探しています。

また、 を使用してイベントをバインドする代わりにonclick、JavaScript で完全にバインドします。

$(document).ready(function() {
    $('input[value="Show/Hide"]').click(function() {
        $(this).parent().next('div').toggle();
    });
});​

次に、HTML を単純化できます。

<div>
   <input value="Show/Hide" type="button" />
</div>

<div style="display:none;">
    Text
</div>​

デモ: http://jsfiddle.net/NXM7w/

于 2012-11-14T00:17:39.747 に答える