我试图隐藏/显示表单中的一类元素,具体取决于用户做出的下拉菜单选项。请参阅:http://jsfiddle.net/3FmHK/2/
我是js的新手并且有两个问题,所以也许他们很明显,请耐心等待。
1)我正在通过div id进行修改,因此只有第一个元素发生了变化(并且由于某种原因而不是在这个小提琴中,但它在项目中会发生变化)。但是,我希望修改一个类的所有元素,但我无法完成这项工作。那么如何修改整个类的style =“display”,而不是单个元素?
2)删除对新添加的元素不起作用,当表单返回项目中的值时,它们是可移除的。使用firebug,就我所知,GET返回生成元素与用户添加元素的代码看起来相同。为什么remove函数不适用于新添加的元素?
答案 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绑定到新创建的元素。
希望这会有所帮助。
答案 1 :(得分:0)
尝试:
$(this).parent('div').first().remove();