0

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

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

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

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

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

some_function接受这个 id,它是传递给它的唯一参数。

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

4

2 回答 2

3

CSSid不能以数字开头,因此选择器.up#1无效(选择器也是如此#1)。如果您将id值修改为以字母开头(我通常使用x,除非我有更有用的东西可以使用,例如x1,x2等),这些选择器将起作用(当然,前提是元素在您使用时存在)重新使用选择器)。

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


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

于 2013-09-18T09:18:00.243 回答
0

你应该在 前面放一个字符id,像这样。

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

$('#e' + id) //reference the element by id
于 2013-09-18T09:20:41.643 回答