Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何为Select2对象重用ID和名称_Javascript_Jquery Select2 - Fatal编程技术网

Javascript 如何为Select2对象重用ID和名称

Javascript 如何为Select2对象重用ID和名称,javascript,jquery-select2,Javascript,Jquery Select2,我有一个大表,每行有一个Select2对象,它们都有一个对应的ID,其中包含它们所在行的编号。(它们也有相同的名称)(fmselection1,fmselection2,…) 每当用户删除一行时(例如,使用Select2对象“fmselection2”),我希望所有后续Select2对象减少其ID和名称: fmselection3->fmselection2 fmselection4->fmselection3 这是通过重新分配属性来完成的: $('#fmselection'+i).attr(

我有一个大表,每行有一个Select2对象,它们都有一个对应的ID,其中包含它们所在行的编号。(它们也有相同的名称)(fmselection1,fmselection2,…)

每当用户删除一行时(例如,使用Select2对象“fmselection2”),我希望所有后续Select2对象减少其ID和名称:
fmselection3->fmselection2
fmselection4->fmselection3

这是通过重新分配属性来完成的:

$('#fmselection'+i).attr('id', 'fmselection'+(i-1));
$('#fmselection'+(i-1)).attr('name', 'fmselection'+(i-1));
这似乎是可行的,但一旦新行再次添加并使用

$('#fmselection'+newID).select2();
曾经使用
newID
的Select2对象突然失去了Select2外观,其行为再次类似于普通的HTML select

我的问题是:
Select2是否支持“重新分配”ID和名称?

我的问题的答案是,在尝试了几个小时的不同方式(也包括先选择(“销毁”)然后重新激活)后,重新分配一个正式使用的ID在IE和Chrome中都不起作用


我遵循Scott Marcus的方法,试图避免ID编号的必要性,这最终完全避免了重新分配。

我认为你首先应该问问自己,你使用
ID
的目的是什么。如您所见,使用
id
s可以创建需要修复的脆弱代码,就像您正在寻找的代码一样。除了为元素分配唯一的
id
s之外,还有许多其他方法可以定位元素并与之交互。您应该避免使用
id
,最好使用数据属性,例如
data id=“3”
等。然后,当您想要删除并获取值时,可以使用jQuery函数
data()
获取值,如
$(选择器).data('id')@penleychan这并不能真正解决问题。它只会将其移动到另一个属性。更大的问题是为什么这里首先需要唯一标识符。@penleychan这可能会解决我的问题。我将改为使用专用数据属性,看看它是否有效,然后返回。