如何使用 ID 变量在 jQuery 中选择元素?
Posted
技术标签:
【中文标题】如何使用 ID 变量在 jQuery 中选择元素?【英文标题】:How do I select an element in jQuery by using a variable for the ID? 【发布时间】:2010-10-19 03:26:17 【问题描述】:例如下面选择一个id="2"的划分:
row = $("body").find("#2");
我该如何做这样的事情:
row_id = 5;
row = $("body").find(row_id);
上述语法产生错误。我在这里检查了 jQuery 文档和答案,但没有成功。
【问题讨论】:
哇,五个答案一模一样…… 【参考方案1】:row = $("body").find('#' + row_id);
更重要的是,做额外的 body.find 对性能没有影响。正确的做法很简单:
row = $('#' + row_id);
【讨论】:
【参考方案2】:最短的方法是:
$("#" + row_id)
将搜索限制在正文中没有任何好处。
此外,您应该考虑将您的 id
s 重命名为更有意义的名称(并且根据 Paolo 的回答符合 html),特别是如果您还有另一组数据也需要命名。
【讨论】:
我喜欢简洁。我刚刚将它与 qTip2 工具提示一起使用,效果很好。我有点好奇生成大量这些“及时”的性能损失是什么,例如响应用户输入。【参考方案3】:通过ID查找时不需要做$('body').find();
;没有性能提升。
另请注意,以数字开头的 ID 是not valid HTML:
ID 和 NAME 标记必须以字母 ([A-Za-z]) 开头,后跟任意数量的字母、数字 ([0-9])、连字符 ("-")、下划线 (" _")、冒号 (":") 和句点 (".")。
【讨论】:
【参考方案4】:你可以这样做:
row_id = 5;
row = $("body").find('#'+row_id);
【讨论】:
【参考方案5】:你的代码有两个问题
-
要按 ID 查找元素,您必须为其添加前缀“#”
当需要字符串时,您尝试将数字传递给查找函数(传递“#”+ 5 会解决此问题,因为它会先将 5 转换为“5”)
【讨论】:
【参考方案6】:我对 jQuery 了解不多,但试试这个:
row_id = "#5";
row = $("body").find(row_id);
编辑:当然,如果变量是数字,你必须在前面加上"#"
:
row_id = 5
row = $("body").find("#"+row_id);
【讨论】:
以上是关于如何使用 ID 变量在 jQuery 中选择元素?的主要内容,如果未能解决你的问题,请参考以下文章