0

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

我用它来生成新的ID

var id = 1;
function getNextId()
{
    return ++id;
}

然后我正在这样做

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

但我得到一个Uncaight SyntaxError: Unexpected identifier

如何添加多个 id,其中第二个是唯一的?

(我点击删除第一个 id,所以我可以将#content 留在那里)

此处讨论了元素上的多个 id:Can an html element has multiple ids?

4

5 回答 5

6

如何添加多个 id,其中第二个是唯一的?

你不能。

一个元素上不能有多个 ID。每个元素你得到零个或一个 ID,就是这样。如果你想添加额外的东西来选择一个元素,你可以使用类。

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

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

产生类似的东西<div id="content newId3">,这是行不通的。您没有给它两个 ID,而是给它一个带有空格的 ID,这是一个无效的 ID:

ID 和 NAME 标记必须以字母 ([A-Za-z]) 开头,后跟任意数量的字母、数字 ([0-9])、连字符 ("-")、下划线 ("_") , 冒号 (":") 和句点 (".")。

于 2013-02-07T16:11:05.187 回答
2

您的代码有两个问题:

  1. 'a'b不是有效的 JavaScipt。尝试'a' + b

  2. HTML id 中不允许使用空格字符。即使它们是,id属性中的所有字符都会构成 ID,因此您不能为一个元素分配多个 ID。改用 a class

于 2013-02-07T16:12:03.480 回答
1

好像:

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

我敢打赌这更正确

于 2013-02-07T16:13:54.913 回答
0

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

'<div id="id-' my_id_var '"></div>'

就是行不通。

"<div id=\"id-" + getNextID() + "\"></div>"

不过,会工作得很好。

第二个问题,每个元素都有1 个ID。
关键是给定一个 ID 以使元素具有唯一性
为什么你希望元素是唯一可识别的两次

还有很多其他方法可以做到这一点。

首先,你有class.
如果您正在处理需要类似状态的对象(“选定”、“新闻文章”、“用户交互”),请使用类。

然后,你有data-属性。

<div id="player_1"
     class="player-character"
     data-health="42"
     data-x="320"
     data-y="240"
     data-speed="5"
    ><img src="..."
></div>

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

var player_1 = document.getElementById("player_1");
player_1.dataset.health;  // "42"

我认为这些值可以追溯到 IE8。
如果您想走得更远,那么.dataset您可以使用而不是使用.setAttribute("data-" + field_name, value)

如果您使用的是 jQuery,那么无论如何它都会为您处理所有这些。

所以有了所有这些选项,为什么你想要每个元素有 2 个 id?

于 2013-02-07T16:24:41.863 回答
0

试试这个:

$('<div id="content-' + getNextId() + '" class="span6"></div>').appendTo('.new');
于 2013-02-07T16:12:25.743 回答