使用jquery选择器,其中属性与id匹配

时间:2014-05-22 20:38:56

标签: jquery

我分配了很多这样的ID:

$(".split").each(function(index) {
       $(this).attr("id", index);
 });

然后在路上我尝试这样的选择器:

$("#id="+c)

但它会引发以下错误:

Error: Syntax error, unrecognized expression: #id=1

如何选择具有特定号码的ID?

3 个答案:

答案 0 :(得分:6)

您只需要#标志:

$("#" + number);

答案 1 :(得分:1)

将ID选择器替换为:

$("#" + c)

换句话说,删除表达式中的id=,因为选择元素ID的正确方法是在其前面加上一个井号(#)。

但是我建议不要使用数字作为HTML元素的ID,,因为这是一个无效的CSS选择器。我的建议是在它前面添加一个有效的标识符,以便更好地理解呈现HTML,假设您从服务中动态检索的项目列表中创建唯一ID。例如,

$(".split").each(function(index) {
   $(this).attr("id", "row_" + index.toString());
});

然后你会选择如下:

$("#row_" + c)

比方说,看起来像这样的元素(忽略我使用DIV的事实):

   <div id="row_0">...</div>
   <div id="row_1">...</div>
   <div id="row_2">...</div>
   <div id="row_3">...</div>
   <div id="row_4">...</div>

更新:我原先说数字是无效的CSS选择器。 @acdcjunior下面发布了一个链接,使我原来的声明无效。我的观点是你应该避免用数字命名项目,因为:

  1. 他们不会让您的代码可读。
  2. 整个HTML文档的ID必须是唯一的。如果您的HTML文档中还有另一个部分也用数字命名重复项,则会遇到命名冲突。在这种情况下,如上所述,为它们添加前缀,以便在它们被使用的上下文中有意义。

答案 2 :(得分:1)

尝试以下代码: -

$(“#”+数据);

相关问题