2009-04-13 118 views
79

例如,下面选择的分割使用id = “2”:如何在ID中使用变量来选择jQuery中的元素?

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

我怎样做这样的事情:

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

上述语法产生错误。我检查了jQuery文档,并在这里回答没有成功。

+6

哇,五个答案完全一样...... – Zifre 2009-04-13 14:48:02

回答

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

更重要的是做额外的body.find对性能没有影响。要做到这一点,正确的方法很简单:

row = $('#' + row_id); 
+0

就是这样!谢谢! – Tony 2009-04-13 14:25:24

0

我不知道很多有关jQuery的,但试试这个:

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

编辑:当然,如果变量是一个数字,你必须添加"#"到前面:

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

你可以这样说:

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

有两个问题与您的代码

  1. 要找到一个元素的ID,必须以“#”
  2. 您正在尝试前缀它通过一个号码时,需要一个字符串查找功能(通过“#” + 5可以解决这个问题,因为这将5转换为“5”的第一)
37

最短的方法是:

$("#" + row_id) 

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

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

+0

好点 - 感谢澄清这一点。 – Tony 2009-04-13 15:04:00

+0

我喜欢简洁。我只是用qTip2工具提示来使用它,效果很好。我有点好奇,为了响应用户输入而产生大量“及时”性能损失。 – 2017-11-22 19:04:35

26

按ID查找时不需要做$('body').find();;没有性能收益。

还请注意,具有以数字开头的ID not valid HTML

ID和名称标记必须以字母开头([A-ZA-Z])和之后可以是任何数量的字母,数字([0-9]),连字符(“ - ”),下划线(“_”),冒号(“:”)和句点(“。”)。

相关问题