0

ユーザーが行ったドロップダウン メニューの選択に応じて、フォーム内の要素のクラスを非表示/表示しようとしています。参照: http://jsfiddle.net/3FmHK/2/

私はjsが初めてで、2つの問題があります。おそらくそれらは明らかです。ご容赦ください。

1)div idで変更しているため、最初の要素のみが変更されます(何らかの理由でこのフィドルではなく、プロジェクトでは変更されます)。ただし、クラスのすべての要素を変更したいのですが、それを機能させることができませんでした。単一の要素ではなく、クラス全体の style="display" を変更するにはどうすればよいでしょうか?

2) 新しく追加された要素の削除は機能しません。フォームがプロジェクト内の値で返された場合、それらは削除可能です。Firebug を使用すると、コードは、GET が生成した要素とユーザーが追加した要素で同じように見えます。新しく追加された要素に対して削除機能が機能しないのはなぜですか?

4

2 に答える 2

2

可能であれば、これには jQuery を使用することをお勧めします。.on() 機能を使用して、新しく作成された要素のアクションをバインドし、クラス セレクターを使用してすべてのクラスを .hide() し、次に ID で現在選択されているクラスを .show() することができます。

次のようになります。

jQuery(document).ready( function() {
    jQuery(document).on('click', '.classname', function() {
        jQuery('.' + jQuery(this).attr('class') ).hide();
        jQuery(this).show();
        // Or you can use the following to show a specific ID element.
        //jQuery('#idtoshow').show();
    )};
});

これにより、クラス名を持つすべての要素が非表示になります。スクリプトの前に jQuery ライブラリを含める必要があります。ここでは show と hide のみを使用していますが、アクションを .click だけでなく .on にバインドする限り、.remove() を使用できます。新しく作成された要素にバインドするには .on が必要です。

http://api.jquery.com/on/

お役に立てれば。

于 2012-06-22T17:02:12.043 に答える
0

試す:

$(this).parent('div').first().remove();
于 2012-06-22T17:00:25.123 に答える