如何通过使用ID的变量在jQuery中选择元素?

时间:2009-04-13 14:13:19

标签: jquery syntax select

例如,以下选择id =“2”的除法:

row = $("body").find("#2");

我该怎么做:

row_id = 5;
row = $("body").find(row_id);

上述语法会产生错误。我检查了jQuery文档和答案,但没有成功。

6 个答案:

答案 0 :(得分:176)

row = $("body").find('#' + row_id);

更重要的是,执行额外的body.find对性能没有影响。正确的方法是:

row = $('#' + row_id);

答案 1 :(得分:44)

最短的方式是:

$("#" + row_id)

将搜索限制在身体上没有任何好处。

此外,您应该考虑将id重命名为更有意义的内容(根据Paolo的回答符合HTML标准),尤其是如果您还有另一组需要命名的数据。

答案 2 :(得分:26)

按ID查询时无需执行$('body').find();;没有性能提升。

另请注意,拥有以数字开头的ID为not valid HTML

  

ID和NAME令牌必须以字母([A-Za-z])开头,后面可以跟任意数量的字母,数字([0-9]),连字符(“ - ”),下划线(“ _“),冒号(”:“)和句号(”。“)。

答案 3 :(得分:5)

你可以这样做:

row_id = 5;
row = $("body").find('#'+row_id);

答案 4 :(得分:1)

您的代码存在两个问题

  1. 要按ID查找元素,您必须在其前面添加“#”
  2. 当你需要一个String时,你试图将一个Number传递给find函数(传递“#”+ 5会解决这个问题,因为它会先将5转换为“5”)

答案 5 :(得分:0)

我对jQuery了解不多,但试试这个:

row_id = "#5";
row = $("body").find(row_id);

编辑:当然,如果变量是数字,则必须在前面添加"#"

row_id = 5
row = $("body").find("#"+row_id);