Javascript 向元素添加多个唯一ID

Javascript 向元素添加多个唯一ID,javascript,jquery,Javascript,Jquery,我需要向元素添加第二个唯一id 我用它来生成新的ID var id = 1; function getNextId() { return ++id; } 那我就这么做 $('<div id="content '" + getNextId() +"'" class="span6"></div>').appendTo('.new'); 但我得到了一个不正确的语法错误:意外的标识符 如果第二个ID是唯一的,如何添加多个ID 我将在单击时删除第一个id,因此我可以将内

我需要向元素添加第二个唯一id

我用它来生成新的ID

var id = 1;
function getNextId()
{
    return ++id;
}
那我就这么做

$('<div id="content '" + getNextId() +"'" class="span6"></div>').appendTo('.new');
但我得到了一个不正确的语法错误:意外的标识符

如果第二个ID是唯一的,如何添加多个ID

我将在单击时删除第一个id,因此我可以将内容保留在那里

此处讨论了元素上的多个ID:

如果第二个ID是唯一的,如何添加多个ID

你不能

一个元素上不能有多个ID。每个元素都有零个或一个ID,就是这样。如果要添加其他内容以选择元素,可以使用类

您的语法错误是由于一些非常混乱的引号引起的;我怀疑你想这么做:

$('<div id="content newId' + getNextId() + '" class="span6"></div>')
生产像这样的东西,这是行不通的。您没有给它两个ID,而是给它一个ID,其中有一个空格,这是一个无效ID:

ID和名称标记必须以字母[a-Za-z]开头,后面可以是任意数量的字母、数字[0-9]、连字符、下划线、冒号和句点


您的代码有两个问题:

“a”b不是有效的JavaScipt。试试a+b

HTML ID中不允许使用空格字符。即使是,id属性中的所有字符都将构成id,因此不能为一个元素分配多个id。改为使用类

请尝试以下方法:

$('<div id="content-' + getNextId() + '" class="span6"></div>').appendTo('.new');
看起来像:

$('<div id="content '+ newId + getNextId() +'" class="span6"></div>').appendTo('.new');

我打赌这更正确

我认为一个很好的开始是在那里添加一个+

然后在JS中,您可以执行以下操作:

var player_1 = document.getElementById("player_1");
player_1.dataset.health;  // "42"
我认为,这些值早在IE8就得到了支持。 如果您想更进一步,那么可以使用.setAttributedata-+field_name,value代替.dataset

如果您使用的是jQuery,那么它将为您处理所有这些


那么,有了所有这些选项,为什么每个元素需要两个id?

首先,看起来$您的引号是错误的。newId是我在生成的唯一id之前放置的字符串,否则我会在语法突出显示处看到一个数字。此外,元素ID中不能有空格。一个元素只能有一个ID。如果使用XHTML,可以添加一个带名称空间的ID属性,但从技术上讲,这不是一个ID,而是一个不同的属性。我需要保留newId,因为它是我在enwly创建的uniqe ID之前放置的字符串,否则这将是一个数字:因此,考虑到我们实际上可以有两个不同的id,你建议输出2个完整的id=而不是将2连接成一个id=否则我会得到你想要的,1个id名称,其中有空格?基本上是这样吗?$。附加到“.new”@rob.m:你不能有两个不同的ID,也不能定义同一个属性两次。他只是指出了你代码中的一个语法错误。您可以在XHTML中执行此操作:

,但这仅仅是因为其中一个是有名称空间的。@rob.m不。我想说的是您不能执行此操作。您不能有两个ID。这是不可能的。没有执行此操作的有效语法。

"<div id=\"id-" + getNextID() + "\"></div>"
<div id="player_1"
     class="player-character"
     data-health="42"
     data-x="320"
     data-y="240"
     data-speed="5"
    ><img src="..."
></div>
var player_1 = document.getElementById("player_1");
player_1.dataset.health;  // "42"