使用js修改类中的所有元素

时间:2012-06-22 16:53:15

标签: javascript

我试图隐藏/显示表单中的一类元素,具体取决于用户做出的下拉菜单选项。请参阅:http://jsfiddle.net/3FmHK/2/

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

1)我正在通过div id进行修改,因此只有第一个元素发生了变化(并且由于某种原因而不是在这个小提琴中,但它在项目中会发生变化)。但是,我希望修改一个类的所有元素,但我无法完成这项工作。那么如何修改整个类的style =“display”,而不是单个元素?

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

2 个答案:

答案 0 :(得分: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库。虽然我只在这里使用show和hide,但只要你用.on绑定你的动作而不仅仅是.click,你就可以使用.remove()。您需要.on绑定到新创建的元素。

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

希望这会有所帮助。

答案 1 :(得分:0)

尝试:

$(this).parent('div').first().remove();