2015-10-20 100 views
3

我正在开发一个女巫软件,所有select元素都使用select2库。 在页脚有这个代码,要做到这一点:如何销毁属于特定类的所有select2选择

$('select').select2(); 

现在我正在开发一个新的画面,一些选择将使用选择2和其他不这样做,所以我创建的类” .noSelect2" 为那些不应该有select2。 当我把这个代码,它只是破坏了第一个选择:

$('.noSelect2').select2('destroy') 

我可以做些什么来消灭所有的元素?

回答

4

使用类以Select2为目标的问题是,Select2在过去将类复制到容器元素,以便您可以在其中应用CSS。因此,使用该类来定位<select>也导致以<div>或其他容器元素为目标,并且这会触发错误。

简单的解决方案是在类选择器前面添加select,因此它只针对<select>元素。

$('select.noSelect2').select2('destroy') 

在4.0.0 there is a known bug与调用select2('anything'),它选择多个实例的时候是不相符的。这应该由Select2的下一个版本(4.0.1)修复。

+0

但我只能摧毁第一个选择权?有一种方法可以销毁所有具有“.noSelect2”类的select2元素?谢谢你的帮助。 –

+0

这取决于您使用的是哪个版本的Select2。它应该在3.5.x和4.0.1中使用(使用修改后的选择器)。在4.0.0中,您需要遍历所有元素并手动调用它。 –

相关问题