在我的网站中,我以这种方式设置了一些元素: 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,并且它是传递给它的唯一参数。
我不知道为什么失败,感谢您的帮助!
最佳答案
CSS id
值 cannot start with a digit ,因此选择器 .up#1
无效(选择器 #1
也是如此)。如果您修改 id
值以字母开头(我通常使用 x
除非我有更有用的东西可以使用,例如 x1
, x2
等),这些选择器将起作用(当然,前提是这些元素在您使用选择器时存在)。
(这个数字是 CSS 限制;HTML 和 DOM 实际上并不关心您的 id
值是什么,只要它们是唯一的即可。)
旁注:您很少需要限定 id
选择器(使用标签名称、类等)。 id
值在页面上是唯一的,因此不需要进一步限定。有这样做的用例,主要是仅针对元素如果它也有给定的标签或类,如果没有,则忽略它,但 99.9%时间,你只需要#id
。
关于javascript - 通过常量类和动态 ID 来识别元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18868250/