我需要为元素添加第二个唯一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 have multiple ids?
答案 0 :(得分: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]),连字符(“ - ”),下划线(“ _“),冒号(”:“)和句号(”。“)。
答案 1 :(得分:2)
您的代码存在两个问题:
'a'b
无效的JavaScipt。试试'a' + b
HTML ID中不允许使用空格字符。即使它们是,id
属性中的所有字符都将构成ID,因此您不能为元素分配多个ID。请改用class
。
答案 2 :(得分:1)
看起来像:
$('<div id="content '+ newId + getNextId() +'" class="span6"></div>').appendTo('.new');
我敢打赌,这是更正确的
答案 3 :(得分:0)
请改为尝试:
$('<div id="content-' + getNextId() + '" class="span6"></div>').appendTo('.new');
答案 4 :(得分: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?