0

我试图根据用户所做的下拉菜单选择隐藏/显示表单中的一类元素。见:http: //jsfiddle.net/3FmHK/2/

我是 js 新手,有两个问题,所以也许它们很明显,请耐心等待。

1)我正在通过 div id 进行修改,所以只有第一个元素发生了变化(由于某种原因,不在这个小提琴中,但它在项目中发生了)。但是,我希望修改一个类的所有元素,但我无法做到这一点。那么如何修改整个类的 style="display" 而不是单个元素呢?

2) remove 不适用于新添加的元素,当表单返回项目中的值时,它们是可移除的。据我所知,使用 firebug,GET 返回生成的元素与用户添加的元素的代码看起来相同。为什么删除功能不适用于新添加的元素?

4

2 回答 2

2

如果可以的话,我建议使用 jQuery。您可以使用 .on() 功能将操作绑定到新创建的元素,并使用类选择器 .hide() 所有类,然后 .show() 当前通过 id 选择的类。

它看起来像这样:

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 库。虽然我在这里只使用了显示和隐藏,但您可以使用 .remove(),只要您使用 .on 而不仅仅是 .click 来绑定您的操作。您需要 .on 才能绑定到新创建的元素。

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

希望这可以帮助。

于 2012-06-22T17:02:12.043 回答
0

尝试:

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