通过常量类和动态id识别元素

时间:2013-09-18 09:15:40

标签: javascript jquery html html5

在我的网站中,我以这种方式设置了一些元素: 1. class ='up'id ='1' 2. class ='up'id ='2' 3. class ='up'id ='3' 4. class ='up'id ='4' 等等。(元素数量未知)

我的问题是尝试在javascript中识别它们。我尝试使用以下代码(JQuery)来选择特定元素:

$('.up#'+ id)....

然而,这似乎失败了。你看到id有一个变量传递给处理它的函数。它从点击事件传递,并以这种方式设置:

$('.up').click(function(){
    some_function(this.id);
});

some_function接受此ID,它是传递给它的唯一参数。

我不知道为什么会失败,谢谢你的帮助!

2 个答案:

答案 0 :(得分:3)

CSS idcannot start with a digit,因此选择器.up#1无效(选择器#1也是如此)。如果您将id值修改为以字母开头(我通常会使用x,除非我有更多有用的内容,我可以使用,例如x1x2等。) ,那些选择器将起作用(当然,前提是元素存在于您使用选择器时)。

(这个数字是一个CSS限制; HTML并且DOM实际上并不关心你的id值是什么,只要它们是唯一的。)


旁注:您很难确定id选择器(带有标签名称,类等)的资格。 id值在页面上是唯一的,因此不需要进一步限定。有 这样做的用例,主要是仅针对元素,如果它也有给定的标记或类,如果没有,则忽略它,但是99.9%的时间,你只需要#id

答案 1 :(得分:0)

你应该在id前放一个角色,就像这样。

<element id="e1" class="up">

$('#e' + id) //reference the element by id