Javascript/jQuery ID 检查以通过验证驱动编号功能

Javascript/jQuery Id check to drive numbering function with validation

本文关键字:验证 编号 功能 jQuery ID 检查 Javascript      更新时间:2023-09-26

我需要循环的帮助...这可能很简单,但我很难编码。

基本上,我需要检查现有 ID 的编号,以便我可以使用不同的数字创建唯一的 ID。它们的名字是这样的:id="poly'+i'"与我的函数一起,其中 i 等于现有元素的数量。示例:数组 1、数组 2、数组 3 对应于 i=1 以创建数组 1,i=2 对应于数组 2,依此类推。

现在 i 基于现有元素的总数,我的 "CreateNew" 函数由 x=i+1 驱动(所以上面的例子,新元素将被命名为 Array 4)。问题是,如果您删除其中一个中间数字,"创建"功能将复制高数字。即数组 1、2、3 删除 2,创建新>数组 1、3、3。

我需要一个 if() 语句来检查数组是否已经存在,然后是一个 for() 循环遍历所有 i,直到它验证。不知道如何编码。

试图纠正的代码如下(注意我最初不是写这个,我只是想用我最少的 JS 技能来纠正它):

function NewPanel() {

  var i = numberOfPanels.toString();
  var x = (parseInt(i)+1).toString(); 

  $('#items').append('<div onclick="polygonNameSelected(event)" class="polygonName" id="poly'+i+'">&nbsp;&nbsp;Array '+ x +' &nbsp;&nbsp;&nbsp;&nbsp;<a href="javascript:void(0)" onclick="removePolygon('+i+');return false;">&nbsp;&nbsp;&nbsp;</a></div>');
  $('div[id*=poly]').removeClass('selected');
  $('#poly'+i).addClass('selected');
  $('#poly'+i).click(function() {
    selectedPolygon = i;
    $('div[id*=poly]').removeClass('selected');
    $(this).addClass('selected');
  });
}

谢谢!:)

请澄清"问题是,如果您删除中间数字之一,"。删除是什么意思?无论如何,最简单的解决方案是创建两个数组。两个数组将具有相同的创建 id。每当在第一个数组中创建 id 时,都会将 id 添加到第二个数组中。因此,当它从第一个数组中删除时,请检查第二个数组的最大值,然后在第一个数组中创建此 id。我希望这不会让你感到困惑。

好吧,

很难说为什么你不能拼接数组。在我看来,跟踪元素编号涉及很多额外的逻辑。换句话说,除了索引相同之外,由于重叠的 1、3、3(来自示例),id 与其他属性变得相同。如果不是这种情况,那么我的假设是不正确的。

基于该假设,当我遇到希望确保创建的索引始终是追加索引的情况时,我通常采用与数据库主键相同的方法。我设置了一个字段:

var primaryKeyAutoInc = 0;

每次我"创建"或将元素添加到数据存储(在本例中为数组)时,我都会复制键的当前值作为索引,然后递增primaryKeyAutoInc值。这允许保证唯一索引,我假设你要去。此外,删除不仅不会影响将来的数据创建,保存的键索引还可以用作访问器。